|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2014
Messaggi: 201
|
[EXCEL VBA] Estrarre tutti i links contenuti in una pagina Web
Salve a tutti ragazzi del forum,
vorrei chiedere a qualcuno di voi che sappia usare il VBA (che io ovviamente non so usare) se potrebbe darmi una mano nella scrittura del codice per l'esecuzione di una macro che letto un dato indirizzo e-mail scritto in una cella, mi restituisca tutto il codice sorgente HTML riga per riga, scritto però non in una cella unica, ma andando a capo di cella in cella, perché ho letto da qualche parte che le celle in Excel hanno una lunghezza massima di caratteri che possono contenere e perciò tutto il codice non potrebbe starci e buona parte si perderebbe... Quello che ha me serve è solo questo, dato che poi tramite la formula CERCA.VERT() mi andrei ad estrapolare di volta in volta dal codice le informazioni di cui avrei bisogno, le quali sono di solito contenute nella riga 210, perciò se il codice fosse anche fatto in modo che estraesse solo quella data riga sarebbe meglio, però mi va bene lo stesso anche tutto P.s. prima che lo chiediate, SI, ho cercato in internet e NO, non ho trovato quello che cercavo... c'erano parecchie soluzioni, ma non sono mai riuscito a trovarne una funzionante per un problema di librerie o altro genere di errore su Excel Vi ringrazio immensamente per l'aiuto qualora vogliate offrirmelo Ultima modifica di UwU : 04-01-2017 alle 17:15. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2014
Messaggi: 201
|
Allora ragazzi, cercando in rete e facendo vari test, ho trovato un codice che fa al caso mio:
Codice:
Sub Naviga()
Dim texto As String
Dim objIE As Object
Dim DestUrl As String
DestUrl = "http://www.google.it"
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.Navigate2 DestUrl
Do
DoEvents
Loop Until objIE.readyState = READYSTATE_COMPLETE
Range("A" & 1).Value = objIE.document.body.innerHTML
End Sub
1) Vorrei che invece di inserire io il link manualmente, se lo andasse a prendere direttamente da dentro una cella 2) Essendo le celle di Excel limitate come caratteri da inserire dentro, tutto il codice non ci sta e quindi la macro dovrebbe fare in modo di andare a capo e scrivere il codice riga per riga Come posso modificarlo? Grazie Ultima modifica di UwU : 27-12-2016 alle 00:07. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2014
Messaggi: 201
|
Allora ragazzi, sono molto vicino alla soluzione, ho sistemato il codice, ora è più pulito, leggibile ed ho trovato il modo di fargli leggere una cella in particolare...
Codice:
Sub EstrSorgPag()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
IE.navigate Range("H1")
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Range("A" & 1).Value = IE.document.body.innerHTML
End Sub
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Feb 2014
Messaggi: 201
|
ok sono riuscito a scrivere una macro che sia in grado di estrarre tutti i link da una pagina Web e questo è il risultato
Codice:
Sub EstraiURLdaWeb()
Dim doc As HTMLDocument
Dim output As Object
Set IE = New InternetExplorer
IE.Visible = False
IE.navigate Range("L1")
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Set doc = IE.document
Set output = doc.getElementsByTagName("a")
i = 5
For Each link In output
Range("A" & i).Value = link
i = i + 1
Next
MsgBox "Fatto!"
End Sub
Ultima modifica di UwU : 04-01-2017 alle 17:17. |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Mar 2017
Messaggi: 1
|
ciao
POtresti darmi delle dritte per l'uso di macro per estrapolare dati da internet ed intranet?
grazie |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:13.



















