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 :
Les éléments à saisir présentés ici sont fictifs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 :
Même si la procédure fonctione, cette interruption pour cause d'erreur m’empêche d'enchainer sur l'étape suivante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part InputGoogleZoneTexte.Value = "LOGIN.LOGIN"
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.
Partager