Probabilmente il problema è dovuto al fatto che il metodo navigate non attende l'effettivo caricamento della pagina, di conseguenza nella riga di codice successiva Set d = Webbrowser1.Document l'assegnazione non ha luogo in quanto la proprietà Document non è ancora stata impostata. A me funzionava perchè il metodo navigate lo chiamavo in una sub a parte (un altro button) e attendevo che la pagina fosse caricata prima di caricare i dati nelle textbox.
Così dovrebbe andare:
codice:
Dim d As IHTMLDocument3
Dim el As IHTMLElement
WebBrowser1.Navigate "http://www.libero.it"
'attende il caricamento della pagina
Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
'variabile documento
Set d = WebBrowser1.Document
'imposta username
Set el = d.getElementsByName("LOGIN").Item(0)
el.setAttribute "value", "alfabetagamma"
'imposta password
Set el = d.getElementsByName("PASSWD")(0)
el.setAttribute "value", "xxxxxxxxx"
'pulsante di invio
Set el = d.getElementsByName("Act_Login")(0)
el.Click
Ho inserito un loop di attesa che termina quando la pagina è stata caricata.
Ricorda che se cambi sito devi verificare l'attributo name dei tag input, inoltre se la pagina contiene frame bisogna cambiare leggermente il codice.
Fammi sapere, ciao