Condividi:        

Excel, effetto "NUOVE PRESTAZIONI" ??

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

Excel, effetto "NUOVE PRESTAZIONI" ??

Postdi Gianca532011 » 04/06/21 17:20

Ciao,
è possibile che un codice costruito con sintassi e comandi di vecchio tipo , vedi sotto per il cerca , dia errore utilizzando Excel 2016 ?

Codice: Seleziona tutto
Function Cerca(ByVal testo As String, ByVal DaCercare As String) As Integer
'nel testo indicato, cerca il prefisso DaCercare, e restituisce il puntatore al carattere successivo (0 se non trovato)
   Dim p As Long
   p = InStr(1, testo, DaCercare, vbTextCompare)
   If p Then Cerca = p + Len(DaCercare)
End Function
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Sponsor
 

Re: Excel, NUOVE PRESTAZIONI

Postdi Gianca532011 » 05/06/21 18:53

Rettifica : 1) ho fatto la verifica sul Cerca.x e come risultato ottengo #nome , quindi sul mio 2016 non c'è l'Upgrade quindi - in teoria- il file che funzionava prima dovrebbe funzionare anche adesso.
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Re: Excel, NUOVE PRESTAZIONI

Postdi Anthony47 » 05/06/21 23:41

Non vedo istruzioni particolari, in quel codice; insomma dovrebbe funzionare come al solito...
Come si manifesta il problema?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, effetto "NUOVE PRESTAZIONI" ??

Postdi Anthony47 » 06/06/21 10:44

Ho spostato il tuo quesito sganciandolo da quello cui ti eri accodato (viewtopic.php?f=26&t=111058) creando quindi una nuova discussione
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Macro che ha smesso di funzionare

Postdi Gianca532011 » 06/06/21 10:59

Ok, ne approfitto per descrivere meglio...
Mi succede che un vecchio file, funzionante senza problemi fino a qualche mese fa, improvvisamente abbia smesso di funzionare su office 2016 , mentre mi funziona senza problemi su win.8.1 ed excel 2010. Ora , prova che ti riprova sono riuscito a farlo funzionare aggiungendo uno spazio quando la macro fa le specifiche ricerche :
codice originale
Codice: Seleziona tutto
 If COD = "O" Then
            txt = GetText(Replace$(URL, "$", "obbligazioni/mot/obbligazioni-in-euro"))
            i = Cerca(txt, "Prezzo Ultimo Contratto |")      '1 spazio prima di |


codice modificato inserendo uno spazio in più prima del |

Codice: Seleziona tutto
 If COD = "O" Then
            txt = GetText(Replace$(URL, "$", "obbligazioni/mot/obbligazioni-in-euro"))
            i = Cerca(txt, "Prezzo Ultimo Contratto  |")     '2 spazi prima di |


Ora, in un modo o nell'altro riesco a scaricare i dati, ma capire il perchè di questo pasticcio che, sono quasi sicuro al 99,99 % che non sia colpa della macro ma di Microsoft, è il motivo che mi spinge a scrivere qui.
Grazie comunque se vorrete prendervi carico di questo problema .

Qui i file per eventuali test.
http://www.filedropper.com/filediriferimento
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Re: Macro che ha smesso di funzionare

Postdi Anthony47 » 06/06/21 17:47

Un sito non ti restituisce stringhe di testo, ma una descrizione della pagina html che poi il browser si occupa di trasformare in una pagina leggibile: tag, attributi, valori.
Non conosco le tecniche di programmazione html quindi non so quali circostanze determinano la reazione del server; certamente la risposta varia in funzione del browser che fa la richiesta e del sistema operativo che lo ospita (tant'e' che le statistiche spesso sono divise, oltre che per area geografica anche per tipo di browser o per sistema operativo)
Insomma piu' che altro mi meraviglia che per tanto tempo la ricerca con 1 spazio tra il testo e il "pipe" (|) abbia funzionato, non che ora non funzioni piu'.
Per me il modo pulito di risolvere la faccenda e' trattare la risposta come documento html, quindi andare a cercare i campi delle informazioni che servono tramite i tag e gli attributi html (tipo GetElementsbyTagName, o ..byClassName, o gli altri comandi disponibili nella libreria mshtml.tlb.

Un modo spiccio, che dura finche' va bene, e' di eliminare i doppi spazi all'interno della risposta.
Quindi, all'interno della Function GetText, non GetText = doc.body.innerText ma
Codice: Seleziona tutto
   GetText = Application.WorksheetFunction.Trim(doc.body.innerText)


Questo elimina qualsiasi "doppio spazio" dalla risposta e quindi fara' funzionare l'originale ricerca con "Prezzo Ultimo Contratto |" (con 1 solo spazio)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel, effetto "NUOVE PRESTAZIONI" ??

Postdi Gianca532011 » 07/06/21 08:21

Grazie Anthony, modifica applicata e ... perfettamente funzionante.
E grazie ancora perchè ti sei preso la briga di verificare il codice sino a trovare e risolvere l'inghippo, cosa questa che non è scontata in un forum .
E questa disponibilità non è cosi scontata perchè ,su altri forum, a volte la "spocchia sopravanza la sostanza." E non dico di più.

Per quanto riguarda il discorso " Per me il modo pulito di risolvere la faccenda e' trattare la risposta come documento html, quindi andare a cercare i campi delle informazioni che servono tramite i tag e gli attributi html (tipo GetElementsbyTagName, o ..byClassName, o gli altri comandi disponibili nella libreria mshtml.tlb. " hai perfettamente ragione ma il problema è che il fratello maggiore di questo file prevede talune implicazioni e formule di natura prettamente finanziaria che non so se sarei in grado di replicare.
Per ora quindi di nuovo grazie.
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18


Torna a Applicazioni Office Windows


Topic correlati a "Excel, effetto "NUOVE PRESTAZIONI" ??":


Chi c’è in linea

Visitano il forum: Nessuno e 53 ospiti

cron