Prelevare dato da pagina Web

Anonimo
2016-02-03T17:00:41+00:00

Buongiorno

ho arrangiato un codice che dato un valore nella cella attiva mi effettua una ricerca nel sito Yahoo finanza. Fin qui tutto bene il problema, che non so risolvere nonostante mille tentativi, è come importare nella cella accanto a quella attiva un dato che appare nella pagina risultato della ricerca.  Per esempio ottenuto come risultato della ricerca la pagina https://it.finance.yahoo.com/lookup;\_ylc=X3oDMTIzb244cDNwBGtleXcDWFMwOTk2NzgyODM0BG1pZANtZWRpYXF1b3Rlc3NlYXJjaARzZWMDZ2V0cXVvdGVzYnRuBHNsawNsb29rdXA-?s=XS0996782834, dovrei importare il valore "X78283.IT" .

di seguito il mio codiceSub yahoo()

 Set ie = CreateObject("InternetExplorer.Application")

    With ie

        .Visible = True

        .Navigate "https://it.finance.yahoo.com/q?s"

        Do Until .readyState = 4: DoEvents: Loop

        .Document.All.Item("s").Value = ActiveCell

        ie.Document.Forms("quote").Submit

        Do Until .readyState = 4: DoEvents: Loop

        Do While .Busy: DoEvents: Loop

        End With

Grazie a tutti

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

7 risposte

Ordina per: Più utili
  1. Anonimo
    2016-02-05T09:29:39+00:00

    Prova a chiedere sul forum HTML.it indicato.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-02-05T09:22:05+00:00

    Grazie per i suggerimenti.

    Ho provato in questo modo:

     ie.document.getElementById("yfi_sym_results").getElementsByClassName("yui-dt").getElementsByClassName("yui-dt-odd").innertext

             Worksheets("ala").Range("B1").Value = innertext

    ma niente, mi rassegnerrò al copia e incolla.

    Grazie comunque per il tempo dedicatomi.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-02-04T08:33:38+00:00

    Mi sembra di capire che dentro a quell'oggetto (una riga <tr> ) ci siano due celle <td>. La prima cella è quella che contiene il dato di tuo interesse.

    Io chiederei anche qui:

    dove il dom delle pagine HTML è di casa.... ;-)

    E qui la spiegazione del dom HTML:

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-02-03T18:01:39+00:00

    Grazie infinite per la prontissima risposta.

    Immaginavo qualche cosa del genere, ma non sapevo da dove partire. Ho provato a completare il mio codice  aggiungendo le seguenti stringhe:

    With htm.getElementByclassname("yui-dt-odd")

            ThisWorkbook.Worksheets("b").Range("g1").Value = .innerText

        End With.

    ma mi segnale un errore nella prima riga:

    errore di run time 424 nessun oggetto.

    Buona serata

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2016-02-03T17:22:17+00:00

    Devi recuperare il dato dall'oggetto che lo contiene.

    Nel tuo caso, vedendo lo HTML, direi da qui (parte evidenziata):

    Da quel poco che capisco, dalla class  yui-dt-odd.

    Tieni presente che da alcune pagine che presentano i dati in modo particolare, recuperare dati è quasi impossibile.

    Ne abbiamo discusso ad esempio qui:

    La risposta è stata utile?

    0 commenti Nessun commento