Condividi:        

Versioni diverse Office

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Versioni diverse Office

Postdi brtbrn » 11/01/25 18:07

Salve a tutti!
mi chiamo Bruno e sono iscritto da poco in questo forum, nonostante lo legga da diverso tempo e mi sia stato di grosso aiuto in diverse occasioni.
Ho provato a fare qualche ricerca (sia qui che nel web) per trovare risposte ad un problema sorto ultimamente con excel…ma invano.
Premetto che sono un utente abbastanza basico del pacchetto Office, per cui magari mi sto perdendo in un bicchier d’acqua (relativamente a configurazioni o installazioni aggiornamenti, componenti, librerie, etc)
Dunque mi scuso in anticipo se utilizzo termini non propriamente “corretti”.

Vado al dunque: qualche mese fa ho chiesto ad un amico di allestirmi un pc nuovo, quindi con hardware e software (evidentemente) più aggiornati di quelli che ho utilizzato finora.
Per quanto riguarda Office, mi ha installato il pacchetto office 2019 professional plus (mentre sul pc vecchio utilizzo office 2013 professional plus).

Con mia grande sorpresa purtroppo, ho constatato che sul pc nuovo, alcuni file excel - che tramite macro scaricavano dati dal web - non funzionano più… :(
Sono tutti file, realizzati anche grazie ad indicazioni trovate in questo sito, che utilizzando macro in VBA, mi permettono di recuperare dati da vari siti, nella fattispecie yahoo.
So che ultimamente quel sito ha rivisto / messo delle limitazioni allo scaricamento di molti dati, però trovo strano che questi file, sul pc vecchio funzionino ancora, mentre su quello nuovo no! :(

L’amico di cui sopra non saputo darmi un aiuto… e immagino non sia facile (da queste poche informazioni e senza avere a disposizione la macchina per fare delle prove) risolvere il problema… ma spero ci sia qualcuno che riesca a darmi qualche dritta, qualche indicazione (magari sul settaggio, su qualche componente/libreria mancante, etc.) per trovare una soluzione.

Grazie intanto per l'attenzione!
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Sponsor
 

Re: Versioni diverse Office

Postdi Anthony47 » 11/01/25 21:12

Intanto Benvenuto nel forum

Se mancano delle librerie dovresti avere dei messaggi espliciti; comunque apri un file che non funziona e guarda nel vba: Menu /Strumenti /Riferimenti; controlla se ci sono delle librerie dichiarate “Mancante”

E’ anche possibile che i dati siano importati tramite collegamenti “DDE”, che richiedono uno specifico “engine” installato sul pc; soprattutto se parli di dati finanziari importati in real time.

Oppure pubblica un file che sul vecchio pc funziona e sul nuovo no e vedremo di guardarci dentro

Per le istruzioni su come allegare un file:
http://www.pc-facile.com/forum/viewtopi ... 87#p605487
Avatar utente
Anthony47
Moderatore
 
Post: 19496
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Versioni diverse Office

Postdi brtbrn » 12/01/25 18:12

Salve Anthony47, e grazie per la solerte risposta.
Ho provato con la prima ipotesi e, aprendo il menu riferimenti - code, trovo un elenco coi riferimenti disponibili (le librerie credo); ne sono spuntate alcune (visual basic for applications, microsoft excel 16.0 object library, OLE automation, microsoft office 16.0 object library, microsoft forms 2.0 object library e microsoft winHTTP service, version 5.1).
Tutto il resto dell'elenco (scorrendolo è molto lungo) non è spuntato...
in ogni caso non trovo alcuna dicitura "mancante"...
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi brtbrn » 12/01/25 18:15

sulla seconda ipotesi (mancanza specifico engine) non so che dirti... come scritto ieri, sono abbastanza basico nelle mie conoscenze.

prima di mandarti il file, ti ricopio quello che ho trovato sul VBA... spero sia sufficiente per farti capire qualcosa :-)

grazie intanto

Function StockQuote(ticker As String)

' Get near real-time stock quote from Yahoo via JSON query

Dim URL As String, response As String, stripped As String, inbits() As String, i As Long
Dim request As WinHttp.WinHttpRequest ' needs Tools|References|WinHTTP Services
On Error GoTo Err

URL = "https://query1.finance.yahoo.com/v8/finance/chart/" & Trim(ticker)
Set request = New WinHttp.WinHttpRequest
With request
.Open "GET", URL, True
.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
.Send
.WaitForResponse
response = .responseText
End With

If InStr(response, """result"":[]") <> 0 Then GoTo Err ' ticker not found

'kludge parse: strip JSON delimiters and quotes
stripped = Replace(Replace(Replace(Replace(Replace(response, "[", ""), "]", ""), "{", ""), "}", ""), """", "")

stripped = Replace(stripped, ":", ":,") ' keep colons for readability, but make them delimit
inbits = split(stripped, ",") ' split

i = LBound(inbits)
Do While inbits(i) <> "regularMarketPrice:" And i <= UBound(inbits) ' find "regularMarketPrice:" tag
i = i + 1
Loop

If i > UBound(inbits) Or Not IsNumeric(inbits(i + 1)) Then ' not found; look for previous close
i = LBound(inbits)
Do While inbits(i) <> "regularMarketPreviousClose:" _
And i <= UBound(inbits)
i = i + 1
Loop
If i > UBound(inbits) Or Not IsNumeric(inbits(i + 1)) Then GoTo Err
End If

StockQuote = Val(inbits(i + 1)) ' price is next element
Exit Function

Err:
StockQuote = CVErr(xlErrNA)

End Function
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi Anthony47 » 12/01/25 20:55

Quella Function richiede solo la librearia Microsoft WinHTTP Services, la cui eventuale assenza genererebbe un messaggio di errore.

Se in una cella del tuo foglio (nel file che contiene quel codice) scrivi la formula =StockQuote("IBM") che cosa succede?

Comunque a questo punto la mia prima ipotesi e' che nel tuo nuovo Excel le macro siano totalmente disabilitate.
Prova con:
-Menu /File /Opzioni /Centro protezione; Impostazioni Centro protezione. Qui, in Impostazioni delle macro, spunta la voce Disabilita le macro con notifica. Completa con Ok, Ok
A questo punto riapri il file e riprova; se chiede se le macro debbono essere abilitate scegli Abilita

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19496
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Versioni diverse Office

Postdi brtbrn » 12/01/25 21:25

ho provato a scrivere la formula =StockQuote("IBM") in una cella (che poi è quello che richiedo, in un foglio apposito del file) e mi da il solito messaggio l'errore #N/D... errore che nel pc vecchio non mi dà, estrapolando correttamente da yahoo il prezzo del titolo.

ho verificato il discorso "abilitazione macro" ed era già spuntata la voce "Disabilita tutte le macro con notifica"...

ho notato che, sulla stessa maschera vi è una voce (non spuntata) relativa a impostazione macro sviluppatori, che chiede "considera attendibile l'accesso al modello a oggetti dei progetti VBA...
forse devo spuntare anche questa voce?
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi Raffaele53 » 13/01/25 08:58

Ho Excel-2019, quando scarico un files dalla rete (pure da altro PC) vedo la scritta "Rischio per la Sicurezza, Windows ha bloccato.....". Di norma basta salvarlo in altra posizione, oppure tramite Esplora-Risorse mouse destro/Proprieta e spuntare "Annulla Blocco"
Ps. Io ho spuntato....ABilita tutte le macro (scelta non consigliata)
Raffaele53
Utente Junior
 
Post: 44
Iscritto il: 03/10/24 13:06

Re: Versioni diverse Office

Postdi Marius44 » 13/01/25 09:22

Ciao
Abilitare TUTTO mi sembra rischioso.
Anche io ho la vers.2019 e sopporto il messaggio d'avviso: chiudo il file, elimino il blocco (come da te indicato) e riapro il file.

Ciao,
Mario
Marius44
Utente Senior
 
Post: 660
Iscritto il: 07/09/15 22:00

Re: Versioni diverse Office

Postdi Anthony47 » 13/01/25 11:31

La mia raccomandazione e' impostare "Disabilita tutte le macro con notifica", che consente di abilitare o no le macro al caricamento del file. In aggiunta si puo' dichiarare il file "Attendibile" nel qual caso le macro saranno automaticamente abilitate; o dichiarare attendibile il Path del file, nel qual caso tutti i file di quel percorso verranno dichiarati "attendibili".
Per queste impostazioni:
Menu /File /Opzioni /Centro protezione; Impostazioni Centro protezione; poi Documenti attendibili, oppure Posizioni attendibili

Da quello che succede mi sembra che le macro sono regolarmente abilitate; il mio sospetto va ora sulle impostazioni locali

Fai questa prova:
1) parti da un nuovo file vuoto
2) con Alt-F11 apri l'editor delle macro
3) con Menu /Inserisci /Modulo inserisci un nuovo "Modulo standard"
4) copia il seguente codice e incollalo nell'area "codice" del modulo vba:
Codice: Seleziona tutto
Function StockQuote(ticker As String)
'V Test
' Get near real-time stock quote from Yahoo via JSON query

Dim URL As String, response As String, stripped As String, inbits() As String, i As Long
Dim lLog As String
Dim request As WinHttp.WinHttpRequest ' needs Tools|References|WinHTTP Services
On Error GoTo Err
lLog = "A"
URL = "https://query1.finance.yahoo.com/v8/finance/chart/" & Trim(ticker)
Set request = New WinHttp.WinHttpRequest
With request
    .Open "GET", URL, True
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
    .Send
    .WaitForResponse
    response = .responseText
End With
Debug.Print ">>>> " & ticker
Debug.Print response
Debug.Print "<<<<  " & ticker
lLog = lLog & "B"
If InStr(response, """result"":[]") <> 0 Then GoTo Err ' ticker not found

'kludge parse: strip JSON delimiters and quotes
stripped = Replace(Replace(Replace(Replace(Replace(response, "[", ""), "]", ""), "{", ""), "}", ""), """", "")

stripped = Replace(stripped, ":", ":,") ' keep colons for readability, but make them delimit
inbits = Split(stripped, ",") ' split
lLog = lLog & "C"
Debug.Print "UBIn:" & UBound(inbits)
lLog = lLog & "D"
i = LBound(inbits)
Do While inbits(i) <> "regularMarketPrice:" And i <= UBound(inbits) ' find "regularMarketPrice:" tag
    i = i + 1
Loop
lLog = lLog & " i=" & i
If i > UBound(inbits) Or Not IsNumeric(inbits(i + 1)) Then ' not found; look for previous close
    i = LBound(inbits)
    Do While inbits(i) <> "regularMarketPreviousClose:" _
      And i <= UBound(inbits)
        i = i + 1
    Loop
    If i > UBound(inbits) Or Not IsNumeric(inbits(i + 1)) Then
        lLog = lLog & " i=" & i & "--" & inbits(i + 1)
        GoTo Err
    End If
End If
Debug.Print "lLog=" & lLog
StockQuote = Val(inbits(i + 1)) ' price is next element
Exit Function

Err:
StockQuote = CVErr(xlErrNA)
Debug.Print "ERR: " & lLog
End Function
(e' la tua funzione con qualche modifica a uso debug)
A completamento, abilita la libreria Microsoft WinHTTP Services: Menu /Strumenti /Riferimenti; scorri l'elenco fino alla predetta voce, spuntala e completa con Ok.
5) Vai sul foglio Excel e in una cella inserisci la formula =StockQuote("IBM")
6) prendi nota di cosa ti ha restituito la formula
7) Torna sull'editor delle macro; premi Contr-g per aprire la "finestra Immediata"; se non funziona Contr-g usa il comando Menu /Visualizza /Finestra Immediata

8 ) Scorri verso l'alto il contenuto della finestra fino alla riga che comincia con ">>>> ...." e copia tutto fino alla fine.
9) Pubblica quanto hai copiato nel testo del tuo prossimo messaggio, insieme al valore restituito dalla formula

Sulla base di queste informazioni magari si capirà meglio
Avatar utente
Anthony47
Moderatore
 
Post: 19496
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Versioni diverse Office

Postdi brtbrn » 13/01/25 16:55

Buon pomeriggio Anthony47, e un saluto anche alle altre persone che hanno fornito un loro aiuto.

Allora, ho fatto tutto come mi hai detto:

La formula restituisce il solito errore #N/D...

Sulla "finestra immediata" mi appaiono solo tre righe con scritto

ERR: A
ERR: A
ERR: A

nessun altra scritta/riferimento...

:-(
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi Anthony47 » 13/01/25 18:36

Ma tu usavi e usi ancora un PC con Windows? Che versione prima e che versione ora?

Nel codice che ti ho dato prima, cancella la formula, cancella poi (per prova) la riga On Error GoTo Err, rimetti la formula; ti dovrebbe dare un errore quando premi Enter per confermare la formula:
-che messaggio di errore? se scegli "Debug", quale riga risulta evidenziata?
Avatar utente
Anthony47
Moderatore
 
Post: 19496
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Versioni diverse Office

Postdi brtbrn » 13/01/25 19:48

si, in entrambi i pc (nuovo e vecchio) ho win11.
ho fatto come mi hai scritto e mi appare il messaggio #VALORE! quando confermo la formula

se premo il tasto Debug non mi evidenzia alcuna riga... devo scegliere qualche opzione dal menù a tendina per far partire il controllo?
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi Raffaele53 » 13/01/25 20:00

Allega il file che hai appena creato....
Raffaele53
Utente Junior
 
Post: 44
Iscritto il: 03/10/24 13:06

Re: Versioni diverse Office

Postdi brtbrn » 13/01/25 20:12

brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi Raffaele53 » 13/01/25 20:30

Da me W10+Excel2019 funziona
Raffaele53
Utente Junior
 
Post: 44
Iscritto il: 03/10/24 13:06

Re: Versioni diverse Office

Postdi brtbrn » 13/01/25 20:35

...non so che dire...
come scritto nel primo post, magari mi sto perdendo in un bicchier d'acqua fatto di configurazioni "non corrette/mancanti" del pc, qualche opzione da spuntare, qualche aggiornamento da fare... :-(
il pc dove questa macro non funziona, è nuovo...
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi Raffaele53 » 13/01/25 20:50

Fai un'ulteriore prova...
Vai sul Modulo1, alla 9° riga (lLog = "A") fai click col mouse leggermente a sinistra sulla barra verticale in modo da far apparire un cerchio rosso. Ora vai sul foglio cella A2 e premi invio. Nel VBA, la riga diventa gialla e premi F8 ripetutamente sino alla fine del codice. Se fai tutto questo e la formula da ancora errore, non saprei cosa dire.
Ps.Naturalmente il PC deve essere collegato a Internet
Raffaele53
Utente Junior
 
Post: 44
Iscritto il: 03/10/24 13:06

Re: Versioni diverse Office

Postdi brtbrn » 13/01/25 21:05

ho fatto come hai scritto
la riga è diventata gialla, ho premuto diverse volte F8, ha evidenziato in sequenza altre righe successive, dalla 10^ fino alla 16^, poi è passato evidenziato in giallo sulla terzultima ( StockQuote = CVErr(xlErrNA) ), la penultima e l'ultima... ma sulla cella A2 è rimasto l'errore #N/D
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi brtbrn » 13/01/25 21:42

per darvi un ulteriore info/conferma che, apparentemente, è tutto corretto, ho provato a scaricare il file portafoglio_fondi V0 (presente sul thread viewtopic.php?f=26&t=111882) e, eseguendo la macro, excel estrapola correttamente i dati da internet (in quel caso da Borsa italiana)
Edit: quel file ha qualche anno mi sembra... e quindi dovrebbe essere aggiornato per i titoli azionari, in quanto il layout da cui pesca i valori (scusate i termini inappropriati) non sono corretti; ma almeno il valore relativo al prezzo, controllato sul sito, è quello!
brtbrn
Utente Junior
 
Post: 13
Iscritto il: 05/01/25 18:41

Re: Versioni diverse Office

Postdi Raffaele53 » 13/01/25 22:59

Sempre che il PC sia collegato ad internet.
Se ho capito bene è anormale che sul Tuo PC il codice salta da
Riga12-Riga18 >>> ad <<< StockQuote = CVErr(xlErrNA)
Solo un tentativo, prova abilitare NET Framework 3.5, casomai non funziona lo disattiverai

>>>Premere il tasto WINDOWS Screenshot del logo del tasto WINDOWS. sulla tastiera, digitare "Funzionalità Windows" e premere INVIO. Viene visualizzata la finestra di dialogo Attivazione o disattivazione delle funzionalità Windows.Selezionare la casella di controllo .NET Framework 3.5 (include .NET 2.0 e 3.0), selezionare OK e riavviare il computer<<<
Raffaele53
Utente Junior
 
Post: 44
Iscritto il: 03/10/24 13:06

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Versioni diverse Office":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti