PDA

View Full Version : [vb e Macro excel] Compilare automaticamente form prendendo dati da foglio excel


frizzo28
01-02-2009, 17:31
Ciao a tutti ho un file excel contente dei dati che dovrei inserire in un form HTML. Il problema principale che non posso usare richieste GET POST e che la pagina web con i form e' generata dinamicamente.
In pratica dovrebbe fare una cosa del genere:
1) Apro il file excel e seleziono la riga da inserire
2) Apro sul browser la pagina contentente i form da compilare automaticamente
3) Eseguo la macro su excel che mi inserirsce tutto sui vari campi di testo
4) Controllo se e' tutto OK e clicco su invia...

Fino ad ora ho trovato e modificato questo codice ma non mi piace molto perche se distrattamente non clicco sulla prima casella succede un casino...

Ecco il codice (Questo non fa altro che compilare user e password che legge dal file excel della registrazione di hardware upgrade

Sub Inserimento_dati()
riga = ActiveCell.Row ' riga contiene il numero di riga dove è la cella attiva
Dim i As Integer


'carico i valori: i numero 1,2,3... sono le varie colonne

a1 = Trim(Cells(riga, 1))
a2 = Trim(Cells(riga, 2))


'attivo la finestra il cui none inizia con "Hardware Upgrade Forum - Registrazione - Mozilla Firefox" (il nome in alto a sinistra della pagina web)
AppActivate "Hardware Upgrade Forum - Registrazione - Mozilla Firefox"


SendKeys a1
'con questo comando invio il carattere della tastiera corrispondente al <TAB>
'cioè mi sposto sul campo successivo
SendKeys Chr(9)
SendKeys a2
SendKeys Chr(9)
SendKeys a2





End Sub


grazie
ciao

MarcoGG
02-02-2009, 11:37
Non vedo purtroppo molte alternative usando SendKeys. Il limite è che questo comando viene interpretato in modo non trasparente a chi lo usa e non c'è molto da fare. Tra l'altro ho fatto una prova veloce sul tuo codice ( in linea di massima corretto ), sulla stessa pagina di registrazione ( nel mio caso Internet Explorer ) e non vuol saperne di compilare la prima textbox ( nome utente ), mentre le 2 pwd, sì... :rolleyes:
L'unica sarebbe tentare aprendo da VBA fin dall'inizio un oggetto IE e andare a pescare via codice la prima textbox disponibile...