Effettuare login e navigare tramite vba

di il
2 risposte

Effettuare login e navigare tramite vba

Ciao a tutti

sto facendo alcune prove per riuscire a loggare in un portale che mi serve per lavoro automaticamente dal mio programma tramite vba


Il codice che utilizzo funziona senza problemi nel caso in cui io lo esegua passo-passo, ma quando lo lancio dal pulsante mi riporta il seguente errore:
Errore di automazione; Errore sconosciuto

Il codice è il seguente:

Function website ()   '---> function presente nel modulo open
Dim HTMLDoc As HTMLDocument
Dim IE As InternetExplorerMedium
Dim myUrl As String
Dim myId As String
Dim myPass As String
Dim myValue As String

myValue = "AAABBB25C36D987Y"
myUrl = "http://cssc.coldiretti.it/jsso/SSOLogin?appurl=http%3A%2F%2Fcssc.coldiretti.it%2FUserProfiler%2Fjsp%2FuserConfig.faces&appid=%2FUserProfiler#cssc.coldiretti.it#80"

Set IE = New InternetExplorerMedium
myId = "YYYY.XXXX"
myPass = "********"

IE.Navigate myUrl

With IE
    .document.Forms(0).Item("username").Value = myId
    .document.Forms(0).Item("password").Value = myPass
    .document.Forms(0).submit.Click
End With
    IE.Navigate2 "http://cssc.coldiretti.it/EIPortal/an/server.do?action=search&first=true&cod_app=&cod_idx=0&cod_current_role=AN-GESTIONE&cod_utente=0UYD#"
    IE.Visible = True
With IE
    .document.Forms(0).Item("valore4").Value = myValue
    .document.Forms(0).b.Click
End With

Set IE = Nothing

End Function
Questa function viene richiamata dal codice di un pulsante al suo click.

per motivi di privacy non posso rilasciare le mie credenziali di accesso.

Confido nell'esperienza vostra per cercare di risolvere il problema.


Ringrazio in anticipo e buona giornata a tutti

2 Risposte

  • Re: Effettuare login e navigare tramite vba

    Dai un'occhiata a questo esempio di codice... cosa vedi di DIVERSO dal tuo...?

    https://stackoverflow.com/questions/48919491/login-to-a-website-using-vba

    Guarda bene la funzione [ieBusy]
  • Re: Effettuare login e navigare tramite vba

    Grazie mille Alex!

    Ora funziona perfettamente.

    Posto il codice completo nel caso possa servire poi a qualcuno:
    Function website ()   '---> function presente nel modulo open
    Dim HTMLDoc As HTMLDocument
    Dim IE As InternetExplorerMedium
    Dim myUrl As String
    Dim myId As String
    Dim myPass As String
    Dim myValue As String
    
    myValue = "AAABBB25C36D987Y"
    myUrl = "http://cssc.coldiretti.it/jsso/SSOLogin?appurl=http%3A%2F%2Fcssc.coldiretti.it%2FUserProfiler%2Fjsp%2FuserConfig.faces&appid=%2FUserProfiler#cssc.coldiretti.it#80"
    
    Set IE = New InternetExplorerMedium
    myId = "YYYY.XXXX"
    myPass = "********"
    
    With IE
        .Navigate myUrl
        ieBusy IE
        .Visible = True
        .document.Forms(0).Item("username").Value = myId
        .document.Forms(0).Item("password").Value = myPass
        .document.Forms(0).submit.Click
        .Navigate2 "http://cssc.coldiretti.it/EIPortal/an/server.do?action=search&first=true&cod_app=&cod_idx=0&cod_current_role=AN-GESTIONE&cod_utente=0UYD#"
        ieBusy IE
        .document.Forms(0).Item("valore4").Value = myValue
        .document.Forms(0).b.Click
    End With
    
    Set IE = Nothing
    
    End Function
    
    Sub ieBusy(IE As InternetExplorerMedium)
        Do While IE.Busy Or IE.ReadyState < 4
            DoEvents
        Loop
    End Sub
    
Devi accedere o registrarti per scrivere nel forum
2 risposte