Interaction avec Internet Explorer via VBA Excel : Variable ou variable de bloc With non définie
Bonjour.
Je cherche à utiliser VBA depuis Access 2010 pour ouvrir Internet Explorer et effectuer une connexion à un site.
On arrive sur une page avec champs Login, Mot de Passe, Bouton connexion.
J'ai utilisé l'excellentissime tuto de Qwazerty "Interaction avec Internet Explorer via VBA Excel"
http://qwazerty.developpez.com/tutor...-et-vba-excel/
Un immense merci et bravo à vous.
Je n'ai pas pu tout lu jusqu'au bout car je me suis arrêté au stricte nécessaire pour arriver à mes fins et aussi, sinon surtout, car je ne comprends pas tout…
J'ai donc gardé ces morceaux de codes pour arriver à cette procédure :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| Sub Connexion_site()
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputGoogleZoneTexte As HTMLInputElement
Dim InputGoogleBouton As HTMLInputElement
Dim FormGoogleCherche As HTMLFormElement
'Chargement de la page web Enquestion
IE.navigate "http://www.lesiteenquestion.fr/index.php"
'Affichage de la fenêtre IE
IE.Visible = True
'On attend le chargement complet de la page
WaitIE IE
'On pointe le membre Document
Set IEDoc = IE.Document
'On pointe notre Zone de texte
Set InputGoogleZoneTexte = IEDoc.all("username")
'On définit le texte que l'on souhaite placer à l'intérieur
InputGoogleZoneTexte.Value = "LOGIN.LOGIN"
'On attend la fin de la recherche
WaitIE IE
'##########################################################################
'On pointe notre Zone de texte
Set InputGoogleZoneTexte = IEDoc.all("password")
'On définit le texte que l'on souhaite placer à l'intérieur
InputGoogleZoneTexte.Value = "MOTDEPASSE"
'On attend la fin de la recherche
WaitIE IE
'##########################################################################
'On pointe la Form qui contient Zone de Texte + Bouton (entre autres)
Set FormGoogleCherche = IEDoc.Forms("form_connexion form_required")
'On exécute l'action Submit de la Form
FormGoogleCherche.submit
'##########################################################################
'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing
End Sub |
Les éléments à saisir présentés ici sont fictifs.
Je tapes "LOGIN.LOGIN", car les logins comportent un point (des fois que ce serrait la source du problème).
Elle fonctionne :
-Internet Explorer s'ouvre,
-La page s'affiche,
-Le champ Login est renseigné,
-Le champ mot de passe est renseigné,
-L'action de validation est activée,
-La page connectée et affichée.
Mais en toile de fond, Access affiche un message (d'erreur ?)
"Erreur d'exécution '91':
Variable ou variable de bloc With non définie"
Et propose d'utiliser le débogueur qui pointe la ligne :
Code:
InputGoogleZoneTexte.Value = "LOGIN.LOGIN"
Même si la procédure fonctione, cette interruption pour cause d'erreur m’empêche d'enchainer sur l'étape suivante.
A jouer avec des choses qu'on ne maitrise pas, on se retrouve avec des pannes qu'on ne peut gérer.
Le plus étonnant, c'est que le code produit l'effet escompté, mais affiche quand même le message d'erreur qu'à la fin.
Encore plus curieux : si je me connecte depuis Firefox à la page en question et que je lance la fonction depuis Access, pas de message d'erreur !
Si je suis déconnecté depuis Firefox (ce qui ce produit une fois que la connexion est établie depuis IE), alors le message d'erreur revient !
J'ai surement manqué quelque chose, mais je suis incapable de trouver quoi…
D'avance merci.