VBA Excel - Accedere ad un sito web, autenticarsi e scaricare un dato

Anonimo
2013-07-23T08:59:29+00:00

Buongiorno a tutti,

sono di nuovo qui con un nuovo problema che sto cercando di risolvere. Avrei bisogno di creare un frammento di codice che mi consenta di andare su una pagina web, eseguire l'autenticazione ed accedere (una volta dentro sono in grado di prendere il dato che mi serve). E' da un po' che ci smanetto ma non riesco a venirne fuori, mi dà un "Errore di run-time 438 (proprietà o metodo non supportati dall'oggetto) nella linea evidenziata di codice:

Set PW = appIE.document.getElementsByName("Nome del tag")

If Not PW Is Nothing Then

PW(0).Value = "password"

End If

Tuttavia, la stessa procedura viene correttamente eseguita con l'username:

Set UserN = appIE.document.getElementsByName("Nome del tag")

If Not UserN Is Nothing Then

UserN(0).Value = "username"

End If

Sapreste dirmi qual'è il problema? Oppure conoscete un metodo semplice per creare il frammento di codice che mi permetta di eseguire l'accesso ad un sito web con username e password? Grazie a tutti in anticipo!

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-07-23T09:49:33+00:00

Per la precisione, il problema più grosso lo sto trovando nel cliccare il bottone del login, nonostante le migliaia di guide ed esempi disponibili sul web :/

Vedi:

http://nhsexcel.com/how-to-use-excel-vba-to-log-in-to-a-website/

http://stackoverflow.com/questions/10506833/data-from-password-protected-website-using-vba

http://vbaexpress.com/kb/getarticle.php?kb_id=399

Google-->excel vba login web password-->Invio

La risposta è stata utile?

3 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-07-23T09:32:48+00:00

    Per la precisione, il problema più grosso lo sto trovando nel cliccare il bottone del login, nonostante le migliaia di guide ed esempi disponibili sul web :/

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2013-07-23T13:01:46+00:00

    Scusa Mauro, il pranzo mi ha portato consiglio e mi sono appena reso conto che non riuscivo a cliccare il bottone perché in realtà non era un oggetto button bensì un link. Ho dunque semplicemente chiesto di navigare la pagina ed ha funzionato. 

    Grazie per la prima risposta, è stata utilissima!

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-07-23T12:56:38+00:00

    Ciao Mauro,

    grazie per la tua risposta, anche stavolta hai risolto il mio problema! Adesso però ne sorge uno nuovo: ho scritto il seguente codice per andare sulla pagina web, inserire i dati ed effettuare il log-in:

    ________________________________________________________

    Dim HTMLDoc As HTMLDocument

    Dim oBrowser As InternetExplorer

    Dim oHTML_Element As IHTMLElement

    Dim sURL As String

    On Error GoTo Err_Clear

    sURL = "https://www.commerzbanking.de/P-Portal2/XML/IFILPortal/pgf.html?Tab=3&ifil=coba_pk"

    Set oBrowser = New InternetExplorer

    oBrowser.Silent = True

    oBrowser.timeout = 60

    oBrowser.navigate sURL

    oBrowser.Visible = True

    Do

    ' Wait till the Browser is loaded

    Loop Until oBrowser.readyState = READYSTATE_COMPLETE

    Set HTMLDoc = oBrowser.document

    HTMLDoc.all.PltLogin_8_txtTeilnehmernummer.Value = "Username"

    HTMLDoc.all.PltLogin_8_txtPIN.Value = "Password"

    For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")

    If oHTML_Element.Name = "PltLogin_8_btnLogin" Then oHTML_Element.Click: Exit For

    Next

    ' oBrowser.Refresh ' Refresh If Needed

    Err_Clear:

    If Err <> 0 Then

    Err.Clear

    Resume Next

    End If

    ________________________________________________________

    Il problema è che, dopo aver eseguito questo accesso, all'interno della nuova pagina vorrei eseguire nuovamente l'operazione di cliccare un bottone come ho fatto per effettuare il login (l'ultimo ciclo For). Tuttavia non riesco ad impostare quest'operazione, per non parlare del fatto che ho inserito un MsgBox nell' "Err_Clear" e questo si apre (mostrando quindi che al termine del ciclo sopraggiunge un errore). Consigli??

    La risposta è stata utile?

    0 commenti Nessun commento