Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Login automatico e registratore di macro

Ultimo Aggiornamento: 29/08/2017 17:12
Post: 57
Registrato il: 08/02/2016
Città: REGGIO CALABRIA
Età: 46
Utente Junior
97-2003
OFFLINE
18/08/2017 15:07

Buongiorno.

Sto per avventurarmi in un campo a me sconosciuto: l'utilizzo di Vba ed Excel per accedere a un sito web e prelevare dati.
Per iniziare a tastare il terreno avrei bisogno di sapere se è possibile utilizzare il registratore di macro e come posso attivarlo in tal senso (in questo momento registra solo le operazioni effettuate su Excel).

Grazie.

Nigel
Post: 3.413
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
18/08/2017 16:23

Non so se con il registratore di macro riesci non ti resta che provare (ma non credo)
In ogni caso fai una ricerca con Google con "VBA connect to a website with password" e verranno fuori molti link da cui prendere spunto.

Va da sè che un minimo di dimestichezza con il VBA la devi avere.
[Modificato da alfrimpa 18/08/2017 16:33]

Alfredo
Post: 1.551
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
18/08/2017 18:42

Ciao
devi avere una conoscenza robusta sia di excel che degli elementi HTML.

Per iniziare (quindi fare il login al tuo sito) devi sapere il nome degli elementi di input, cioè il nome dei campi del sito dove devi inserire User e Password. Inoltre il nome dell'oggetto (pulsante o altro) su cui cliccare "automaticamente" per confermare i dati di accesso. Fatto questo, dovrai analizzare le eventuali tabelle presenti nella page e portarle strutturalmente nel tuo foglio di lavoro.

Qui mi fermo e ti sottopongo il seguente codice che serve ad effettuare da excel il login al nostro sito utilizzando Internet Explorer.

I nomi dei campi della pagina di login (che io ho già trovato) vengono messi nella collection che ho chiamato "mCollection". Nel debug, se vuoi, una volta attivata tale collection puoi "spulciare" i vari item per vedere i nomi (id) degli altri campi che la pagina di login richiede (es: login sicuro - login nascosto ecc).

Naturalmente prima di eseguire il codice chiudi Internet Explorer (anche se è facoltativo), ma fai il logout dal ns. sito,
ed inserisci nella routine le tue credenziali.

Segui il tutto in debug avvalendoti della finestra immediata e della finestra delle variabili locali.

Saluti

Sub Login_Freeforumzone()
' Riferimenti:MicroSoft Internet Controls e Microsoft Object HTML Library <<<<<<<<<<<<<<<<<
  Dim mUser As String, mPsw As String, mURL As String
  Dim mPage As Object, mIE As Object
  Dim mInput As Object, mCollection As Object

  mUser = "TuaUser" '<- modificare
  mPsw = "TuaPassword"  '<- modificare

  mURL = "http://www.freeforumzone.com/loginc.aspx?c=36681&f=36681&pbu=%252fa%252f167685%252fDomande-e-risposte%252fcartella.aspx" 'ind. pg.Web
  Set mIE = CreateObject("InternetExplorer.Application")
  With mIE
      .Navigate mURL
      .Visible = 1
      Do While .Busy: DoEvents:  Loop
      Do While .ReadyState <> 4: DoEvents: Loop
                   
      Set mPage = .Document
      Set mCollection = mPage.getElementsByTagName("INPUT")
      On Error GoTo Logged
      mCollecti0n("ctl00_CPH1_LoginControl_TUsername").Value = mUser
      mCollecti0n("ctl00_CPH1_LoginControl_TPassword").Value = mPsw
      mCollecti0n("ctl00_CPH1_LoginControl_ButLogin").Click
  End With
esci:
  mIE.Quit
  Set mIE = Nothing
  Set mCollection = Nothing
  Exit Sub
Logged:
  MsgBox "E' possibile che tu sia già loggato al sito"
  Resume esci
End Sub


(nb: il registratore di macro non può ovviamente aiutarti in questo caso)
[Modificato da dodo47 19/08/2017 12:21]
Domenico
Win 10 - Excel 2016
Post: 57
Registrato il: 08/02/2016
Città: REGGIO CALABRIA
Età: 46
Utente Junior
97-2003
OFFLINE
29/08/2017 17:12

Re:
dodo47, 18/08/2017 18.42:

Ciao
devi avere una conoscenza robusta sia di excel che degli elementi HTML.

Per iniziare (quindi fare il login al tuo sito) devi sapere il nome degli elementi di input, cioè il nome dei campi del sito dove devi inserire User e Password. Inoltre il nome dell'oggetto (pulsante o altro) su cui cliccare "automaticamente" per confermare i dati di accesso. Fatto questo, dovrai analizzare le eventuali tabelle presenti nella page e portarle strutturalmente nel tuo foglio di lavoro.

Qui mi fermo e ti sottopongo il seguente codice che serve ad effettuare da excel il login al nostro sito utilizzando Internet Explorer.

I nomi dei campi della pagina di login (che io ho già trovato) vengono messi nella collection che ho chiamato "mCollection". Nel debug, se vuoi, una volta attivata tale collection puoi "spulciare" i vari item per vedere i nomi (id) degli altri campi che la pagina di login richiede (es: login sicuro - login nascosto ecc).

Naturalmente prima di eseguire il codice chiudi Internet Explorer (anche se è facoltativo), ma fai il logout dal ns. sito,
ed inserisci nella routine le tue credenziali.

Segui il tutto in debug avvalendoti della finestra immediata e della finestra delle variabili locali.

Saluti

Sub Login_Freeforumzone()
' Riferimenti:MicroSoft Internet Controls e Microsoft Object HTML Library <<<<<<<<<<<<<<<<<
  Dim mUser As String, mPsw As String, mURL As String
  Dim mPage As Object, mIE As Object
  Dim mInput As Object, mCollection As Object

  mUser = "TuaUser" '<- modificare
  mPsw = "TuaPassword"  '<- modificare

  mURL = "http://www.freeforumzone.com/loginc.aspx?c=36681&f=36681&pbu=%252fa%252f167685%252fDomande-e-risposte%252fcartella.aspx" 'ind. pg.Web
  Set mIE = CreateObject("InternetExplorer.Application")
  With mIE
      .Navigate mURL
      .Visible = 1
      Do While .Busy: DoEvents:  Loop
      Do While .ReadyState <> 4: DoEvents: Loop
                   
      Set mPage = .Document
      Set mCollection = mPage.getElementsByTagName("INPUT")
      On Error GoTo Logged
      mCollecti0n("ctl00_CPH1_LoginControl_TUsername").Value = mUser
      mCollecti0n("ctl00_CPH1_LoginControl_TPassword").Value = mPsw
      mCollecti0n("ctl00_CPH1_LoginControl_ButLogin").Click
  End With
esci:
  mIE.Quit
  Set mIE = Nothing
  Set mCollection = Nothing
  Exit Sub
Logged:
  MsgBox "E' possibile che tu sia già loggato al sito"
  Resume esci
End Sub


(nb: il registratore di macro non può ovviamente aiutarti in questo caso)



Purtroppo, per il momento, devo procedere in autonomia non avendo possibilità di frequentare un corso. Dunque con guide cartacee, online e il Vostro aiuto sul forum sono già riuscito a snellire diversi processi che devo affrontare quotidianamente.

Il passo successivo, come lasciavo intendere, è quello di prelevare dati da diversi siti che ancora vengono reperiti manualmente, con una sorta di automa. Da qui la necessità di cominicare a costruire qualcosa di questo genere.

Partendo dai rudimenti e prendendo spunti in rete, ho provato a costruire un primo codice per effettuare un login all'interno di un sito: sono riuscito a scrivere login e password nei relativi campi, ma non sono ancora riuscito ad effettuare l'accesso (mi manca il "click").

ps ho provato il tuo codice ma mi restituisce l'errore "Sub o Function non definita", forse si tratta di un'impostazione del mio Excel differente dalla tua (utilizzo il 2007).


Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
intestazione piè pagina macro (11 messaggi, agg.: 14/11/2016 19:24)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 03:16. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com