Condividi:        

inserire negli spazzi dovuti Username e Password in una pagi

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

inserire negli spazzi dovuti Username e Password in una pagi

Postdi Maury170419 » 02/02/19 17:45

Ciao a Tutti mi chiamo Maurizio e il mio problema con il vba e questo
Su un foglio di excel con Microsoft Office del 2007
Ho scritto nella cella (B2) e Nella Cella (C2) il Nome utente e la sua password.
Hora il problema e questo Io vorrei che tutte le volta che premo un Tasto messo sul foglio di lavoro.
Da programma si Aprisse il foglio Corrispondente ; E negli appositi spazzi mi comparisse il nome Utente che ripeto : Scrivo nella Cella (B2 ) e la password che scrivo nella Cella (C2)

Premetto che per quanto riguarda l'apertura del foglio in questione sono riuscito a risolverlo per conto mio.
Ora il problema e riuscire a fare tutto il resto tutto qui ?

(P.s) Questo e il link per Scaricare il progetto di prova :
https://app.box.com/s/rp3kie1dfkodu0qlyy0x4zzcqwjt1vnm

Grazie
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Sponsor
 

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 02/02/19 18:25

Non puoi pensare che siti diversi abbiano la stessa struttura interna e quindi lo stesso meccanismo per accedervi tramite vba. Nel file hai inserito un unico indirizzo web (http://www.textnow.com/login) con due username e due password, ed e' a questo indirizzo web che si applica la macro successiva.

Con questa premessa, inserire in un Modulo standard del vba e poi assegnare al pulsante:
Codice: Seleziona tutto
Sub Accedi()
Dim IE As Object
Dim myDoc, myF
myurl = Selection.Cells(1, 1).Value
If InStr(1, myurl, "http", vbTextCompare) = 1 Then
    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  '1 sec prudenziale
        DoEvents
        If Timer > myStart + 1 Or Timer < myStart Then Exit Do
    Loop
'
    Set myDoc = IE.Document
    Set myF = myDoc.getElementsByTagName("input")
    If myF.Length > 1 Then
        myF(0).Value = Selection.Offset(0, 1).Value
        myF(1).Value = Selection.Offset(0, 2).Value
        myDoc.getElementsByTagName("button")(0).Click
    End If
Else
    MsgBox ("Indirizzo web no valido")
End If
End Sub

Poi seleziona una cella con un url valido (evita di attivare l'hyperlink) e premi il pulsante.

Adatterai con lo stesso principio (identifica l'oggetto da manovrare nel sorgente della pagina web, esegui appropriata azione, controlla esito) per indirizzare altre pagine web.

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

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Maury170419 » 03/02/19 12:11

Ciao Anthony47 per prima cosa ti invio un enorme grazie da parte mia, in quanto trà libri e internet stavo diventando matto nel risolvere per la prima volta questo tipo di Approccio alla programmazione.
Tanto per capirci uscendo fuori dagli schemi classici : Come Report ; Individuare una Cella che abbia un determinato dato ecc...!

Però per cortesia non te la prendere : Quando ti chiedo di spiegarmi il perché affermi che io stavo tentando di mettere due (Password) ; (Username) e due Link nello stesso progetto.
In quanto a me da quanto avevo capito sino ad ora ; Mi sembrava di aver ben compresi la suddivisione di tutte le parti in questione e di averle messe in pratica egregiamente .
Tanto e vero che prima di chiederti un aiuto in merito , Inizialmente io avevo scritto questa procedura :
Codice: Seleziona tutto
Option Explicit

Sub BrowseToExchangeRates()

    Dim IE As New SHDocVw.InternetExplorer
    Dim HTMLDoc As MSHTML.HTMLDocument
    Dim HTMLInput As MSHTML.IHTMLElement
    Dim HTMLAs As MSHTML.IHTMLElementCollection
    Dim HTMLA As MSHTML.IHTMLElement
   
    IE.Visible = True
    IE.navigate "https://www.textnow.com/login"
   
    Do While IE.ReadyState <> READYSTATE_COMPLETE
    Loop
   
    Set HTMLDoc = IE.Document
   
    'Set HTMLInput = HTMLDoc.getElementById("amount")
    'HTMLInput.Value = 5
   
    Set HTMLInput = HTMLDoc.getElementById("username")
   HTMLInput.Value = "prova1yopmail.fr"
   
    Set HTMLInput = HTMLDoc.getElementById("password")
    HTMLInput.Value = "123456"
   
    'Set HTMLAs = HTMLDoc.getElementsByTagName("a")
   
    For Each HTMLA In HTMLAs
        Debug.Print HTMLA.getAttribute("classname"), HTMLA.getAttribute("href"), HTMLA.getAttribute("rel")
       
        If HTMLA.getAttribute("href") = "https://www.textnow.com/login" And HTMLA.getAttribute("rel") = "ratestable" Then
            HTMLA.Click
            Exit For
        End If
       
    Next HTMLA
   
End Sub


Che però facendo un attento esame dopo averla provata e modificata più volte; Ho poi deciso di scartare ho per meglio dire modificare a tal punto da farla diventare come quella che poi io ho dato a te .

Per tanto ti prego non ti Arrabbiare ma potresti dirmi cosa c'è di sbagliato in tutto ciò.

Tenendo anche presente che : proprio con questo primo approccio la cosa i per li funzionava.
Ma solo la prima volta che lo provi poi più nulla.
Tutto qui !
Grazie comunque per la tua Cortesia nel voler risolvere questa mia richiesta Saluti e Buon Fine Settimana a tutto lo staf di PC-Facile
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 03/02/19 17:57

Avevi allegato un file excel contenente due volte lo stesso url e poi due diverse combinazioni di Username & Password.
Ho quindi pensato che tu stessi cercando una soluzione che consentisse di loggarsi (con username & password) a qualsiasi pagina web. Cosa che non e' pensabile: ogni pagina web ha una sua struttura interna, che deve essere identificata e indirizzata per poter essere sfruttata.

Evidentemente non era questa la tua intenzione e tu stavi cercando solo il metodo per loggarsi a una unica pagina web.

Spero che quanto ti avevo proposto sia ok.

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

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Maury170419 » 04/02/19 20:24

Si Anthony47 Ciao era in Pratica solo questo ciò che volevo sapere .
Ma nella Realtà Desideravo anche che tu mi avessi spiegato un pochino il Tuo Programma che mi hai Regalato .
In quanto per me sarebbe anche molto importante capire il tutto .
Però non importa ; Non voglio di certo portarti via del tempo prezioso al tuo lavoro principale.
Ciao e Grazie di Tutto Saluti Sinceri e Buon Inizio Settimana
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 05/02/19 21:17

La mia macro (e anche la tua!) usa prestazioni disponibili nella Microsoft Html Object Library, MSHTML.tlb

Allego una versione con qualche commento in piu:
Codice: Seleziona tutto
Sub Accedi()
Dim IE As Object
Dim myDoc, myF
myurl = Selection.Cells(1, 1).Value             'L'url della pagina da accedere
If InStr(1, myurl, "http", vbTextCompare) = 1 Then
'Se url valido, Crea una sessione InternetExplorer...
    If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Navigate myurl         '...vai all'url
        .Visible = True         '... rendi visibile IE
        Do While .Busy: DoEvents: Loop    'Attesa not busy
        Do While .ReadyState <> 4: DoEvents: Loop 'Attesa documento
    End With
    myStart = Timer
    Do  '1 sec prudenziale di attesa addizionale
        DoEvents
        If Timer > myStart + 1 Or Timer < myStart Then Exit Do
    Loop
'
    Set myDoc = IE.Document                         'Accedi al "document" di IE (il contenuto)
    Set myF = myDoc.getElementsByTagName("input")   'Riferimento ai tag input
    If myF.Length > 1 Then                          'Controlla ce ne siano 2 o piu'
        myF(0).Value = Selection.Offset(0, 1).Value 'Nel primo Input metti Login
        myF(1).Value = Selection.Offset(0, 2).Value 'Nel secondo metti la Passw
        myDoc.getElementsByTagName("button")(0).Click   'Clicca sul primo Bottone
    End If
Else
    MsgBox ("Indirizzo web no valido")          'Caso Url non valido
End If
End Sub


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

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 07/02/19 19:56

Aggiungo:
-per la documentazione dei comandi disponibili, parti da https://docs.microsoft.com/en-us/previo ... 3dvs.85%29

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

I Miei Più Sinceri Ringraziamenti

Postdi Maury170419 » 14/02/19 19:37

Ciao Anthony47 Ti scrivo solo in quanto anche sé capisco da me che la strada e ancora Estremamente in Salita
Per quanto riguarda la programmazione.
Oggi grazie a te e a molti altri sono Felice - Felicissimo
In quanto per la prima volta sono riuscito in parte ; In quanto e ancora tutto da finire o da Portare a Termine.
Un mio progetto creato da me dall'inizio alla fine ; Senza chiedere aiuti ho aiutin da nessuno.
Sara Stupido sicuramente tutto ciò da parte mia , ma sono felice in quanto molti anni fa , sono partito con l'idea e l'intento di Copiare e Chiedere informazioni a più non posso a tutti voi che avete saputo darmi una mano in questo ho in quel progetto.
Però Oggi sono contento perché : Nel mio picco ho acquisito le basi necessarie per riuscire a camminare solo con le mie gambe ; Sempre nell'ambito della programmazione Pur non avendo fatto nessuna scuola .
Per qui Volevo solo Ringraziarti Infinitamente Per tutti gli aiuti ed insegnamenti che hai saputo darmi nell'arco del tempo.
Ciao e Grazie ancora per i tuoi Servizi e consigli vari
Salutoni da A.Maurizio
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 15/02/19 00:36

Complimenti per la caparbieta'... Vuoi mettere la soddisfazione del "Questo l'ho fatto io!"?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Maury170419 » 13/04/19 02:18

Ciao Anthony Scusami se non inizio un altro nuovo Post ma visto che si tratta sempre dello stesso Argomento sono con una chiave di lettura leggermente diversa che e questa:
Tempo fa mi avevi creato questo progetto :
Codice: Seleziona tutto
Sub Accedi()
Dim IE As Object
Dim myDoc, myF
myurl = Selection.Cells(1, 1).Value             'L'url della pagina da accedere
If InStr(1, myurl, "http", vbTextCompare) = 1 Then
'Se url valido, Crea una sessione InternetExplorer...
    If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")


Ecc...!
Ora però trovando un pochino di fatica a far girare il tutto con Internet Explorer in quanto non riconosce più questo link ( https://www.textnow.com/login )

Mentre non avrei neggun problema se potessi farlo girare su ( Google o Opera )
Come potrei Fare per cambiare il tutto Grazie per tutti i consigli o gli aiuti che vorrai darmi in merito
Saluti da A.Maurizio
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 13/04/19 11:15

Mi dispiace, ma Chrome e Opera non hanno moduli integrati di interazione col vba; quindi se devi accedere alla pagina tramite vba devi usare il vituperato InternetExplorer.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 13/04/19 11:37

Ho visto che quel sito non accetta l'uso di IE.
Fermo restando che per interagire col vba io non conosco alternative (so che ci sono, ma non ne conosco le prestazioni), puoi provare a fare il Login alla cieca con questo codice:
Codice: Seleziona tutto
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long

Sub ApriWebPage()
Dim lngx As Long

comando = "https://www.textnow.com/login"
lngx = ShellExecute(vbNull, "Open", comando, "", "", vbNormalFocus)

Application.Wait (Now + TimeValue("0:00:05"))
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys Cells(1, 1), True
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "{TAB}", True
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys Cells(2, 1), True
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.SendKeys "{TAB}", True
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "~", True
End Sub
Va messo tutto su un nuovo Modulo (vuoto).
Presuppone che in A1 ci sia lo UserName e in A2 la password.
Poi mandi in esecuzione la Sub ApriWebPage e speri che vada tutto liscio

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

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Maury170419 » 13/04/19 20:16

Ciao Anthony scusami se ti rispondo solo adesso ; Ma sono stato alle prese con il tuo programma che funziona alla grande
Ma ci è voluto un pochino per capirlo .

In quanto mentre il primo agiva sul click della colonna (A) e poi da programma si prendeva tutto il resto .

Nel tuo ultimo intervento : Ho dovuto traslare ( Username e la Password ) Nella Colonna (A e B) e poi ri_trascrivermi le (Righe Coinvolte a mano)
Come ad Esempio :
Codice: Seleziona tutto
Application.SendKeys Cells(4, 1), True
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "{TAB}", True
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys Cells(4, 2), True
Application.Wait (Now + TimeValue("0:00:01"))

Perché cosi come me lo hai postato tu " Tu inizi dalla Cella ( A1 ) mentre io incomincio dalla cella (A2) Pertanto la riga (A4) non veniva Calcolata ; ma nessun problema bastava solo capirlo un pochino Tutto qui.

Però nel frattempo avevo risolto tale problema : Mettendo il Browser (Edge) di Windows 10 come Predefinito .

E' vero che lascia il tempo che trova ma ; E servito allo scopo di aggirare l'apertura della (Ie)
Comunque grazie ancora di tutto : Sei sempre un grande
Saluti Sinceri e Buon Fine settimana
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: inserire negli spazzi dovuti Username e Password in una

Postdi wallace&gromit » 20/05/20 21:53

Riprendo questa discussione perché ho provato ad utilizzare il codice proposto ma non funziona.
In A2 ho il mio username per PC-facile
In B2 la password
Fa tutto quello che deve (compila i rispettivi campi) fino a premere il tasto login, che non avviene ma si apre un messaggio di errore di runtime 91
Codice: Seleziona tutto
Sub Accedi()
Dim IE As Object
Dim myDoc, myF
myurl = "http://www.pc-facile.com/forum/viewforum.php?f=26"           'L'url della pagina da accedere
If InStr(1, myurl, "http", vbTextCompare) = 1 Then
'Se url valido, Crea una sessione InternetExplorer...
    If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Navigate myurl         '...vai all'url
        .Visible = True         '... rendi visibile IE
        Do While .Busy: DoEvents: Loop    'Attesa not busy
        Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
    End With
    myStart = Timer
    Do  '1 sec prudenziale di attesa addizionale
        DoEvents
        If Timer > myStart + 1 Or Timer < myStart Then Exit Do
    Loop
'
    Set myDoc = IE.document                         'Accedi al "document" di IE (il contenuto)
    Set myF = myDoc.getElementsByTagName("input")   'Riferimento ai tag input
    If myF.Length > 1 Then                          'Controlla ce ne siano 2 o piu'
        myF(0).Value = Sheets("Foglio1").Range("A2").Value 'Nel primo Input metti Login
        myF(1).Value = Sheets("Foglio1").Range("B2").Value 'Nel secondo metti la Passw
        myDoc.getElementsByTagName("button")(0).Click   'Clicca sul primo Bottone
    End If
Else
    MsgBox ("Indirizzo web no valido")          'Caso Url non valido
End If
End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 21/05/20 00:59

Purtroppo non tutte le pagine web sono articolate nello stesso modo.
In particolare il bottone di login su pc-facile non si chiama "button", e inoltre gli inputbox sono indirizzabili direttamente col loro "ID".
La macro quindi potrebbe essere
Codice: Seleziona tutto
Sub AccediPCF()
Dim IE As Object
Dim myDoc As Object
myurl = "http://www.pc-facile.com/forum/viewforum.php?f=26"           'L'url della pagina da accedere
If InStr(1, myurl, "http", vbTextCompare) = 1 Then
'Se url valido, Crea una sessione InternetExplorer...
    If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Navigate myurl         '...vai all'url
        .Visible = True         '... rendi visibile IE
        Do While .Busy: DoEvents: Loop    'Attesa not busy
        Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
    End With
    myStart = Timer
    Do  '1 sec prudenziale di attesa addizionale
        DoEvents
        If Timer > myStart + 1 Or Timer < myStart Then Exit Do
    Loop
'
    Set myDoc = IE.document                         'Accedi al "document" di IE (il contenuto)
    myDoc.getElementById("username").Value = Sheets("Foglio1").Range("A2").Value
    myDoc.getElementById("password").Value = Sheets("Foglio1").Range("B2").Value
    myDoc.getElementsByName("login")(0).Click
Else
    MsgBox ("Indirizzo web no valido")          'Caso Url non valido
End If
End Sub

Se l'argomento "ti affascina" allora comincia a "ispezionare" gli elementi delle pagine web e a vedere "cosa c'e' dietro"; ti servira' per scegliere a cosa agganciarti

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

Re: inserire negli spazzi dovuti Username e Password in una

Postdi wallace&gromit » 21/05/20 07:42

Ovviamente l'intento non è quello di entrare in PC facile ma nel sito che mi fornisce i dati di produzione dei miei pannelli solari, ho notato che il punto che raggiungevo era lo stesso. Oggi provo, nel mio caso la chiave deve essere qualcosa con "submit"
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: inserire negli spazzi dovuti Username e Password in una

Postdi wallace&gromit » 21/05/20 15:14

Ok, questo ostacolo è superato, ora però non sono ancora nella pagina in cui trovo i dati che mi interessano.
Esaminando gli elementi vedo che quelli si trovano su un "level3", che dovrei in qualche modo raggiungere con la macro, qualche idea?
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: inserire negli spazzi dovuti Username e Password in una

Postdi Anthony47 » 22/05/20 00:12

Troppo vago quel che dici e in genere, con questi livelli di dettaglio, suggerisco di chiedere aiuto sul forum de lostregone.it...

Usa Chrome per raggiungere la pagina, e poi "Ispeziona" l'oggetto che vorresti agganciare (tasto dx, Ispeziona); ti sara' visualizzato il sorgente corrispondente: prova a espandere le singole righe fino a vedere l'intero sorgente.
Ad esempio, per il login su pc-facile io vedo:
Codice: Seleziona tutto
<form action="/forum/ucp.php?mode=login" method="post">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
  <td><input type="text" name="username" id="username" style="width:150px;" value="Username" class="input-text"></td>
  <td style="padding-left:3px;"><input type="password" name="password" id="password" style="width:150px;" class="input-text" value="password"></td>
  <td style="padding:2px 0px 0px 3px;"><input type="submit" name="login" value="Login" class="button"></td>

</tr>

Non escludo che si possa capire qualcosa anche senza l'accesso alla pagina; ma sappi che questi sono giochi di trial & error, quindi così (offline) difficilmente si va lontani.

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


Torna a Applicazioni Office Windows


Topic correlati a "inserire negli spazzi dovuti Username e Password in una pagi":

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

Chi c’è in linea

Visitano il forum: Nessuno e 64 ospiti