Posto il codice così come da me modificato in base alle mie esigenze:
Public Function Scraping()
'by Angelo_tbp
'Riferimenti richiesti:
'Microsoft Internet Controls
'Microsoft HTML Object Library
Dim ie As SHDocVw.InternetExplorer
Dim doc As MSHTML.HTMLDocument
Dim elements As MSHTML.IHTMLElementCollection
Dim inputElement As MSHTML.IHTMLElementCollection
Set ie = New SHDocVw.InternetExplorer
With ie
.Navigate "Inserisci URL"
Do Until Not .Busy And .ReadyState = 4
DoEvents
Loop
Set doc = .Document
.Visible = True
'Non sono pienamente convinto che la routine parta a caricamento completo quindi blocco esecuzione script con un msgbox
'sto studiando il modo di temporizzare mediante ontimer della maschera per lanciare un sendkeys "INVIO" dopo 5 secondi
'così il msgbox mi si chiude da solo e la finestra sarà già caricata...(5 secondi nel mio caso sono sufficienti)
MsgBox ("Chiudi per avviare la routine")
.Document.getElementById("IFramE_numero1").contentWindow.Document.getElementById("IFramE_numero2 che si trovadentro IFramE_numero1").contentWindow.Document.getElementById("ComboBoxUNOcontenutaNel IFramE_numero1").Value = "valoredaselezionare"
.Document.getElementById("IFramE_numero1").contentWindow.Document.getElementById("IFramE_numero2 che si trovadentro IFramE_numero1").contentWindow.Document.getElementById("ComboBoxDUEcontenutaNel IFramE_numero1").Value = "valoredaselezionare"
.Document.getElementById("IFramE_numero1").contentWindow.Document.getElementById("IFramE_numero2 che si trovadentro IFramE_numero1").contentWindow.Document.getElementById("Pulsante in IFramE_numero1 che esegue azione aggiornamento IFramE_numero3 ").Click
Set elements = .Document.getElementById("IFramE_numero1").contentWindow.Document.getElementById("IFRAME_numero3 che si trovadentro IFramE_numero1").contentWindow.Document.getElementsByTagName("TD")
If Not elements Is Nothing Then
For Each inputElement In elements
Debug.Print inputElement.innerText ' mi scrive il testo presente in ogni TD
Next
End If
End With
ie.Quit
Set ie = Nothing
Set doc = Nothing
Set elements = Nothing
Set inputElement = Nothing
End Function
Considera che il codice è specifico per la URL che ho processato.. URL differenti richiederanno codice differente..
inoltre ci sono da considerare anche le impostazioni di protezione del browser.. l'utilizzo di IEmedium (goooooooooogle .... sono troppi link da postare... dovrei ricercarli di nuovo... non li ho trascritti...)
-Nel esempio la pagina web che ho processato è un HTML che contiene un IFRAME che a sua volta ne contiene altri 2;
-nell' IFRAME 2 (che si trova nel IFRAME1) ci sono 2 combobox e un pulsante che premuto aggiorna IFRAME3;
-l'IFRAME 3 contiene una tabella che in HTML...ese ha <TABLE> <TR> e <TD> .... io ho preso l'inner text dei TD per memorizzarlo nel DB...
spero possa essere d'aiuto.
saluti.