Il giorno mercoledì 26 settembre 2018 23:05:50 UTC+2, Bruno Campanini ha scritto:
Ciao Bruno,
prova con questa:
'---
Sub AccessoPortaleFattureCorrispettivi(UTENTE As String, _
PASSWORD As String, _
PIN As String, _
PARTITA_IVA As String, _
SOGGETTO_INCARICANTE As String)
Dim IEApp As Object
Dim Window As Object
'<--- verifico se è già aperta una sessione di internet explorer e nel caso chiudo la finestra --->
On Error Resume Next
For Each Window In CreateObject("shell.application").Windows
If Window.Name = "Internet Explorer" Then Window.Quit
Next Window
On Error GoTo Errore
Call TimerDelay(1)
'<--- creo una nuova sessione di internet explorer e carico i dati per accedere a Fatture e corrispettivi --->
Set IEApp = CreateObject("InternetExplorer.Application")
With IEApp
'ShowWindow .hwnd, 3 'Finestra massimizzata
.Navigate "
https://ivaservizi.agenziaentrate.gov.it/portale/"
Do Until .ReadyState = 4: TimerDelay 1: Loop
On Error Resume Next
With .Document
.all("username").Value = UTENTE
.all("password").Value = PASSWORD
.all("pin").Value = PIN
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("login-form").Submit
Do Until .ReadyState = "complete": TimerDelay 1: Loop
Select Case SOGGETTO_INCARICANTE
Case ""
.all("fm_mestesso").Submit
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("sceltapiva").Value = PARTITA_IVA
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("fm_scelta_piva").Submit
Do Until .ReadyState = "complete": TimerDelay 1: Loop
Case Else
.all("fm_incarichi").Submit ' <--- seleziono l'opzione Incaricato
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("sceltaincarico").Value = SOGGETTO_INCARICANTE ' <--- inserisco l'incaricante
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("incaricodirettoradio").Click
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("fm_scelta_tipo_incarico").Submit ' do Ok al pulsante della partita iva del cliente
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("sceltapiva").Value = PARTITA_IVA
Do Until .ReadyState = "complete": TimerDelay 1: Loop
.all("fm_scelta_tipo_incarico_piva").Submit
Do Until .ReadyState = "complete": TimerDelay 1: Loop
End Select
Do Until .ReadyState = "complete": TimerDelay 1: Loop
End With '.Document
Do Until .ReadyState = 4: TimerDelay 1: Loop
On Error GoTo 0
'=============
.Navigate "
https://ivaservizi.agenziaentrate.gov.it/portale/web/guest/home"
ShowWindow .hwnd, 3 'Finestra massimizzata
End With 'IEApp
RiprendiErrore:
Set IEApp = Nothing
Exit Sub
Errore:
MsgBox "Errore n. " & Err.Number & vbNewLine & _
Err.Description & vbNewLine & _
"Attendere qualche secondo e riprovare l'accesso!", _
vbCritical, "Errore Accesso"
Resume RiprendiErrore
End Sub
'---
UTENTE: è il codice fiscale o il codice utente entratel della persona fisica che accede al portale (per conto proprio o in qualità di incaricato di un soggetto giuridico);
PASSWORD: è la password sempre della persona fisica che accede;
PIN: è il pin della persona fisica che accede;
PARTITA_IVA: è la partita iva per cui si intende accedere (se il soggetto ne ha più di una, magari perché una precedente cessata, viene chiesto per quale accedere). Se si accede in qualità di incaricato di un soggetto giuridico va inserita la partita iva del soggetto giuridico.
SOGGETTO_INCARICANTE: è rappresentato dal codicefiscale e codice sede del soggetto giuridico per cui si accede in qualità di incaricati. Va indicato in questo modo: 0000000000-000 (dove gli ultimi tre zeri rappresentano il primo codice sede. Se un soggetto giuridico avesse più sedi ci potrebbe essere 001,002 ecc.).
Tieni presente che si accede tramite Internet Explorer e che il portale fatture e corripettivi non è propio un fulmine di guerra, soprattutto in questi giorni.