|
|
|
![]() |
|
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 16: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 : 26-12-2016 alle 23: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 16: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: 18:09.