Recuperare dato da pagina HTML
Hai un problema con Excel? 
Recuperare dato da pagina HTML
di Pietro (utente non iscritto) data: 27/06/2016 13:09:56
Ciao a tutti.
Vorrei creare una funzione di Excel tramite VBA che vada a recuperare un valore da una pagina html in una tabella e lo restituisca nella cella di Excel.
Esiste qualcosa di similare da studiare e modificare per fare al caso mio?
Mi piacerebbe, ma non è essenziale, che potesse girare su excel sia per Windows sia per Mac. E' possibile?
Grazie a tutti
Pietro
di patel data: 27/06/2016 13:20:58
la pagina è in rete o hai il file ? se hai il file allegalo e spiega meglio, se è in rete fornisci il link e spiega
di Pietro (utente non iscritto) data: 28/06/2016 08:06:25
Ciao. Ho già provato ieri a rispondere ma non vedo visualizzata la risposta.
La pagina è una pagina internet con le valorizzazioni di un fondo. La inserisco qui sotto nella sezione codice.
A me interesserebbe una funzione excel in visual basic che recuperi il valore contenuto nel campo "Valore quota" e lo restituisca alla cella.
Sarebbe anche interessante, ma magari in un secondo tempo, riuscire a recuperare i valori storici che compongono il grafico sotto, magari in un file csv
Ciao e grazie
www.fondidoc.it/d/Ana/EEFASFR/LU0497415702 |
di patel data: 28/06/2016 10:19:51
prova questa macro che imoporta la pagina nel foglio2 e scrive il valore nel foglio1.
nella seconda riga elimina gli spazi in h t t p
Sub Web_Query()
myURL = "h t t p://www.fondidoc.it/d/Ana/EEFASFR/LU049741570"
With Sheets(2).QueryTables.Add(Connection:="URL;" & myURL, Destination:=Sheets(2).Cells(1, 1))
.BackgroundQuery = True
.TablesOnlyFromHTML = False 'True
.Refresh BackgroundQuery:=False
.SaveData = True
End With
Sheets(1).Range("A1") = Sheets(2).Range("A38")
Sheets(1).Range("B1") = Sheets(2).Range("A39")
Sheets(2).Cells.ClearContents
End Sub
|
di Pietro (utente non iscritto) data: 28/06/2016 14:16:59
Ciao. Ho provato la tua procedura e direi che funziona alla grande. Grazie.
L'unica cosa: ho provato a modificarla per renderla una funzione richiamabile più volte all'interno dello stesso foglio e con indirizzi diversi per fondi diversi ma non sono riuscito a farla funzionare. Hai idea del perchè?
Ciao e grazie ancora
Pietro
Function Web_Query(ByVal ticker As String) As Double
Dim myURL As String
myURL = "h t t p://www.fondidoc.it/d/Ana" & ticker
With Sheets(2).QueryTables.Add(Connection:="URL;" & myURL, Destination:=Sheets(2).Cells(1, 1))
.BackgroundQuery = True
.TablesOnlyFromHTML = False 'True
.Refresh BackgroundQuery:=False
.SaveData = True
End With
Web_Query = Sheets(2).Range("A49")
Sheets(2).Cells.ClearContents
End Function |
di patel data: 28/06/2016 15:36:26
come ti ho già detto la macro che importa la pagina nel foglio2, prende i valori di 2 celle e li scrive nel foglio1.
cambiando sito cambia tutto, non esiste un codice universale per qualsiasi pagina. Quando si riceve un codice occorre analizzarlo e cercare di capire come funziona
di Pietro (utente non iscritto) data: 29/06/2016 08:20:54
Grazie. Ho inserito gli altri indirizzi all'interno della stessa procedura e ho risolto. Grazie
Vuoi Approfondire?