Condividi:        

MACRO per LOGIN e PASSWORD

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: MACRO per LOGIN e PASSWORD

Postdi scanacc » 03/11/20 15:55

No è il punto dove riesco ad arrivare.
Questa è la macro
Codice: Seleziona tutto
Public IE As Object

Sub NAVIGA()
myURL = "https://www.PIPPO.it/lr/home"

If Sheets("GERARCHIA").Range("H3").Value = "" Then
Exit Sub
Else
If Sheets("GERARCHIA").Range("H2").Value = "" Then
Exit Sub
End If

'
If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
'
With IE
    .Navigate myURL
    .Visible = True
    Do While .Busy: DoEvents: Loop    'Attesa not busy
    Do While .ReadyState <> 4: DoEvents: Loop
End With

myLogin = Sheets("Firme").Range("D1").Value
myPassw = Sheets("GERARCHIA").Range("H3").Value
'
IE.document.all("username").Value = myLogin
IE.document.all("password").Value = myPassw


Set myColl = IE.document.getElementsByClassName("button-wrap")
myColl(0).getElementsByTagName("button")(0).Click
Do While IE.Busy: DoEvents: Loop    'Attesa not busy
'Do While IE.ReadyState <> 4: DoEvents: Loop 'Attesa documento

IE.Navigate Sheets("Firme").Range("F1").Value

‘E DOPO C’E’ “ESTRAI GRIGLIA”

Set IE = Nothing
End If
End Sub

Questo è il primo tag iFrame immediatamente successivo
Codice: Seleziona tutto
<td height="100%" id="reportIFrame" valign="top">
      <iframe name="report" width="100%" height="100%" id="report" src="/lr/rdv-fe-lr-proxy-portlet/default.rdvproxy_WAR_rdvfelrproxyportlet_INSTANCE_WwNO9epqJDMA/wfemlayout/wlt/blankPage.html" frameborder="0" scrolling="auto"></iframe>
     </td>
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Sponsor
 

Re: MACRO per LOGIN e PASSWORD

Postdi scanacc » 03/11/20 16:00

.
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Re: MACRO per LOGIN e PASSWORD

Postdi scanacc » 03/11/20 16:02

scanacc ha scritto:Non ci riuscirò mai ma se qualcuno sa che queste poche iformazioni possano servirmi a far pigiare questo bottone sono contento
Immagine

Successivo a questo
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Re: MACRO per LOGIN e PASSWORD

Postdi Anthony47 » 04/11/20 00:49

No è il punto dove riesco ad arrivare
Stai quindi dicendo che non hai provato a cliccare il link sulla pagina aperta all'interno di IE?
Sto' cercando di determinare se la tua pagina e' supportata da I.Explorer, quindi se tu clicchi diciamo all'interno di Chrome mi fai solo andare sulla strada sbagliata...

Codice: Seleziona tutto
 Set myColl = IE.document.getElementsByClassName("button-wrap")
myColl(0).getElementsByTagName("button")(0).Click
Do While IE.Busy: DoEvents: Loop    'Attesa not busy
'Do While IE.ReadyState <> 4: DoEvents: Loop 'Attesa documento

IE.Navigate Sheets("Firme").Range("F1").Value

'E DOPO C’E’ “ESTRAI GRIGLIA”

Questo codice e' monco, perche' non c'e' nessuna garanzia che quando procedi con il .Navigate l'azione del .Click precedente si sia completata; anzi possiamo essere certi che non si sia completata.
La modifica piu' semplice e' che prima del codice di "estrai griglia" ci metti una .Wait di alcuni secondi. Cioe':
Codice: Seleziona tutto
myColl(0).getElementsByTagName("button")(0).Click
Do While IE.Busy: DoEvents: Loop    'Attesa not busy
Do While IE.ReadyState <> 4: DoEvents: Loop 'Attesa documento
Application.Wait (Now + TimeValue("0:00:05"))
IE.Navigate Sheets("Firme").Range("F1").Value
myStart = Timer
Do
    DoEvents
    If Timer > myStart + 4 Or Timer < myStart Then Exit Do
Loop
IE.document.getElementById("exportBOReport").Click

Se anche cosi' non va avanti, allora quando sei in debug, e I.Explorer visualizza la pagina in cui c'e' il link "Estrai Griglia", lavorando sulla pagina di I.Explorer clicca sul link: IE procede e ti propone di "Aprire" o "Salvare" il report? (almeno questo ho capito che dovrebbe fare quel link)
Se No, allora la smettiamo qui perche' quella pagina non supporta I.Explorer, e queste automazioni io le so abbozzare solo tramite la libreria che gestisce I.Explorer.
Se Sì allora significa che I.Explorer e' supportato e insisteremo. In questo caso bisogna risalire l'albero gerarchico in cui si trova il link alla ricerca di possibili agganci. Quindi servirebbe il codice html precedente a quello che hai pubblicato, cosi' come lo vedi quando usi il comando "Esamina elemento"

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: MACRO per LOGIN e PASSWORD

Postdi scanacc » 04/11/20 23:47

Intanto ti dico che quando clicco su Estrai Griglia sulla pagina di IE, il sistema mi chiede di "Aprire" o "Salvare" il report. E quando rispondo, il FILE si apre o si scarica.
Dopo di che vedo se riesco a darti l'albero gerarchico.
Per ora grazie di nuovo
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Re: MACRO per LOGIN e PASSWORD

Postdi Anthony47 » 05/11/20 21:00

Allora:
a) Conferma che hai modificato il codice esattamente come ti avevo scritto
b) Conferma che la macro si ferma sulla riga IE.document.getElementById("exportBOReport").Click segnalando Runtime error XYZ (dammi anche il codice) Variabile oggetto o variabile del blocco With non impostata.
c) Mi hai gia’ detto che se clicchi, nella finestra I.E. aperta, il link “Estrai Griglia” allora ti viene chiesto (come dovrebbe essere) se salvare o aprire il file. Confermami che ho capito bene

d) Allora, mentre la suddetta istruzione e’ evidenziata (perche’ ha causato l’errore e sei entrato in debug), nella finestra del vba premi F8 (dovrebbe riprovare l’istruzione evidenziata) e dimmi che succede:
-se viene segnalato nuovamente il codice di errore, allora prova a cliccare col mouse e dimmi se si comporta come dovrebbe (Apri o Scarica il file). Se Sì, allora ha senso che cerchi e pubblichi il codice html superiore a quello che hai pubblicato, anche se non e’ detto che ne usciremo.
-se (non lo escludiamo, eh) venisse evidenziata l’istruzione successiva allora prova a modificare nella riga If Timer > myStart + 4 etc etc quel “4” in “10” (esageriamo!) e riprova la macro.

Altri “Se” ci ragioneremo se ci arriviamo

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: MACRO per LOGIN e PASSWORD

Postdi scanacc » 06/11/20 16:56

Questo è il codice che c'è ora:
Codice: Seleziona tutto
Sub NAVIGA()
myURL = "https://www.indirizzo.it/lr/home"

If Sheets("GERARCHIA").Range("H3").Value = "" Then
Exit Sub
Else
If Sheets("GERARCHIA").Range("H2").Value = "" Then
Exit Sub
End If

'
If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
'
With IE
    .Navigate myURL
    .Visible = True
    Do While .Busy: DoEvents: Loop    'Attesa not busy
    Do While .ReadyState <> 4: DoEvents: Loop 'Attesa documento
End With



'
'myStart = Timer
'Do
'    DoEvents
'    If Timer > myStart + 4 Or Timer < myStart Then Exit Do
'Loop
'
'Questo codice e' specifico per login su pc-facile:
myLogin = Sheets("Firme").Range("D1").Value
myPassw = Sheets("GERARCHIA").Range("H3").Value
'
IE.document.all("username").Value = myLogin
IE.document.all("password").Value = myPassw
'myStart = Timer
'Do
'    DoEvents
'    If Timer > myStart + 4 Or Timer < myStart Then Exit Do
'Loop


Set myColl = IE.document.getElementsByClassName("button-wrap")
myColl(0).getElementsByTagName("button")(0).Click
Do While IE.Busy: DoEvents: Loop    'Attesa not busy
'Do While IE.ReadyState <> 4: DoEvents: Loop 'Attesa documento

IE.Navigate Sheets("Firme").Range("F1").Value


Set IE = Nothing
End If
End Sub

Fino a qui va tutto bene.
Dopo di che ho inserito il codice che mi hai dato che è diventata:
a)
Codice: Seleziona tutto
Sub NAVIGA()
myURL = "https://www.www.indirizzo.it/lr/home"

If Sheets("GERARCHIA").Range("H3").Value = "" Then
Exit Sub
Else
If Sheets("GERARCHIA").Range("H2").Value = "" Then
Exit Sub
End If

'
If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
'
With IE
    .Navigate myURL
    .Visible = True
    Do While .Busy: DoEvents: Loop    'Attesa not busy
    Do While .ReadyState <> 4: DoEvents: Loop 'Attesa documento
End With



'
'myStart = Timer
'Do
'    DoEvents
'    If Timer > myStart + 4 Or Timer < myStart Then Exit Do
'Loop
'
'Questo codice e' specifico per login su pc-facile:
myLogin = Sheets("Firme").Range("D1").Value
myPassw = Sheets("GERARCHIA").Range("H3").Value
'
IE.document.all("username").Value = myLogin
IE.document.all("password").Value = myPassw
'myStart = Timer
'Do
'    DoEvents
'    If Timer > myStart + 4 Or Timer < myStart Then Exit Do
'Loop


Set myColl = IE.document.getElementsByClassName("button-wrap")
myColl(0).getElementsByTagName("button")(0).Click
Do While IE.Busy: DoEvents: Loop    'Attesa not busy
'Do While IE.ReadyState <> 4: DoEvents: Loop 'Attesa documento

IE.Navigate Sheets("Firme").Range("F1").Value
myStart = Timer
Do
    DoEvents
    If Timer > myStart + 4 Or Timer < myStart Then Exit Do
Loop
IE.document.getElementById("exportBOReport").Click

Set IE = Nothing
End If
End Sub

E qui va in debug "Error run-time '424' Necessario oggetto"
b) Quando clicco su Debug, la luce gialla illumina "IE.document.getElementById("exportBOReport").Click"

c) Si! Compare in basso la classica finestra che mi chiede se voglio Aprire, Salvare (nei vari modi Slava, Salva con nome, Salva e Apri) oppure Annullare.

Ora provo a risponderti sul punto d)
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Re: MACRO per LOGIN e PASSWORD

Postdi scanacc » 06/11/20 17:12

Se ho svolto bene la procedura, premendo F8 ho visto che ricompare l'errore. Ho cliccato poi su Scarica Griglia e me la faceva scaricare.
Ho riprovato la macro con 10, 30 e 40 If Timer > myStart + 4 etc ma per ora niente
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Re: MACRO per LOGIN e PASSWORD

Postdi Anthony47 » 06/11/20 18:49

Per evitare equivoci: stiamo parlando di un sito accessibile anche a noi, o una cosa assolutamente vietata di cui non puoi pubblicare l’url?

Se usando F8 va sempre in errore allora non serve provare con un ritardo piu’ alto, c’e’ qualcos’altro...
Senza vedere il codice html posso solo immaginare che l’elemento "exportBOReport" non sia all’interno del “document”, ma di qualche elemento a sua volta inglobato nel document

Penultima prova:
al posto dell’istruzione IE.document.getElementById("exportBOReport").Click inserisci queste:
Codice: Seleziona tutto
Dim myF As Object
Stop
Set myF = Nothing
Set myF = IE.document.getElementsByTagName("span")
Debug.Print ">>>SPAN " & myF.Length
For I = 0 To myF.Length - 1
    Debug.Print "###" & (I + 1)
    Debug.Print "ID : " & myF(I).ID
    Debug.Print "ITx: " & Left(myF(I).innerText, 80)
Next I
Debug.Print
Set myF = IE.document.getElementsByTagName("iframe")
Debug.Print ">>>IF " & myF.Length
For I = 0 To myF.Length - 1
    Debug.Print "###" & (I + 1)
    Debug.Print "ID: " & myF(I).ID
    Debug.Print "SRC: " & myF(I).src
Next I
Stop

Lancia la macro, che dovrebbe fermarsi sull’istruzione Stop e sulla pagina in cui e' presente il link "Estrai Griglia"; se e' cosi' premi F5 per far procedere la macro fino a secondo Stop.
Apri ora la finestra “Immediata” del vba (premi Contr-g; oppure Menu /Visualizza /Finestra Immediata).

Copia tutto quello che trovi nella finestra e allegalo al tuo prossimo messaggio.
Se si tratta di sito confidenziale esamina bene il contenuto, e sostituisci le scritte assolutamente confidenziali con 1 asterisco ogni lettera da nascondere (vorrei poter leggere almeno la lunghezza della parole nascoste)
Si tratta di informazioni che potrebbero darmi qualche isprirazione per un possibile ulteriore penultimo tentativo

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "MACRO per LOGIN e PASSWORD":

Password Imap (email)
Autore: lukarello7
Forum: Discussioni
Risposte: 8

Chi c’è in linea

Visitano il forum: Anthony47, Marius44 e 59 ospiti