Risolto Errore codice VBA

Mark87

Utente abituale
21 Aprile 2018
223
18
Milano
Excel 2010
0
Ragazzi, questi codici sembrano semplici e facili



Il codice totale è questo:

Visual Basic:
Sub ImportaTitoli()
'dichiarazione variabili
    Dim IE As Object
    Dim Doc As Object
    Dim HTMLAs As Object
    Dim HTMLA As Object
    Dim risultato1 As Double
    Dim risultato2 As Double

    Set IE = CreateObject("InternetExplorer.Application") 'variabile Internet Explorer

    IE.navigate "https://finance.yahoo.com/quote/CEFL?p=CEFL&.tsrc=fin-srch" 'naviga pagina
    IE.Visible = True 'finestra visibile (si può impostare anche a False)
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set Doc = IE.document 'variabile documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("CEFL").Range("D3") = HTMLAs(0).innerText 'scivi nella cella D3 del foglio CEFL il contenuto dell'elemento

    IE.navigate "https://finance.yahoo.com/quote/MORL?p=MORL&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("MORL").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio MORL il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/DHT?p=DHT&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("DHT").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio DHT il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/ET?p=ET&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("ENERGY TRANSFER").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio Energy Transfer il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/GLDI?p=GLDI&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("GLDI").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio GLDI il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/CLM?p=CLM&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("CORNESTONE CLM").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio CORNESTONE CLM il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/WMC?p=WMC&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("WMC").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio WMC il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/T?p=T&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("AT&T").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio AT&T il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/CRM?p=CRM&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("Salesforce").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio Salesforce il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/LEVMIB.MI?p=LEVMIB.MI&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("LEVMIB").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio LEVMIB il contenuto dell'elemento
    
    IE.navigate "https://finance.yahoo.com/quote/IUKD.SW?p=IUKD.SW&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    Sheets("IUKD").Range("D3") = HTMLAs(0).innerText 'scrivi nella cella D3 del foglio IUKD il contenuto dell'elemento
    
    IE.navigate "https://it.finance.yahoo.com/quote/IH2O.MI?p=IH2O.MI&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)") 'collezione di elementi di tipo Class
    risultato1 = HTMLAs(0).innerText
    Sheets("IH20").Range("D3") = Replace(risultato1, ",", ".")
    
    IE.navigate "https://it.finance.yahoo.com/quote/MLPD.MI?p=MLPD.MI&.tsrc=fin-srch" 'naviga pagina
    Do While IE.Busy: DoEvents: Loop 'Attesa not busy
    Do While IE.readyState <> 4: DoEvents: Loop 'Attesa documento

    Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib") 'collezione di elementi di tipo Class
    risultato2 = HTMLAs(0).innerText
    Sheets("MLPD").Range("D3") = Replace(risultato2, ",", ".")
    
    IE.Quit 'chiusura IE

    'eliminazione variabili
    Set IE = Nothing
    Set Doc = Nothing
    Set HTMLAs = Nothing
End Sub
la parte "risultato2=HTMLAs(0).innerText" è il problema.
 

Mark87

Utente abituale
21 Aprile 2018
223
18
Milano
Excel 2010
0
Ragazzi senza il vostro prezioso aiuto sarà complicato. Opzioni:

Visual Basic:
risultato2=HTMLAs(0).innerText
risultato2=HTMLAs(1).innerText
risultato2=HTMLAs(1,1).innerText
 

Rubik72

Excel/VBA Expert
Supermoderatore
Expert
12 Dicembre 2015
5.392
83
47
Cosenza
Excel 2016
165
Ricontrolla il nome dell'elemento
Codice:
Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib ")
ha lo spazio finale
 
  • Like
Reactions: Mark87

Mark87

Utente abituale
21 Aprile 2018
223
18
Milano
Excel 2010
0
Rubik ora va ma il problema non era la parentesi tonda alla fine di D(ib)"

Visual Basic:
Set HTMLAs = Doc.GetElementsByClassName("Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib) ")
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!