Bonjour tout le monde,
J'ai créé/modifié une macro pour ouvrir une page, renseigner dessus mon identifiant et mot de passe, et simuler le click de validation, ce qui me mène sur une autre page où je où je renseigne une date de début et de fin avant de valider. Le tout me permet d'accéder à une table que je vais importer dans Excel 2010.
La macro fonctionne lorsque je teste en pas à pas ou si je mets un point d'arrêt au bon endroit, mais j'ai une erreur 91 (Variable objet ou variable de bloc With non définie) si je lance une exécution en un temps.
J'ai bien mis une boucle d'attente de chargement de la page, j'ai essayé de mettre des Application.wait (jusqu'à 10 secondes) à différents endroits autour du point bloquant, j'ai essayé de mettre un MsgBox pour que l'utilisateur ait la main sur le délai d'attente, mais rien n'y fait.
Si quelqu'un à une idée de la cause, et encore mieux une solution, j'en serais ravi.
Le code de ma macro, avec les annotations en lignes 48 et 62:
Et à tout hasard, le code des deux pages IE concernées:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 Sub ImportSVI() Dim WkS As Worksheet Set WkS = ThisWorkbook.Worksheets("Infos") Dim Ident As String Ident = WkS.Range("B1").Value Dim ModePass As String ModePass = WkS.Range("B2").Value Dim DateDeb As Date DateDeb = WkS.Range("B4").Value Dim DateFin As Date DateFin = WkS.Range("B5").Value Dim AdresseServeur As String AdresseServeur = WkS.Range("B7").Value Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim InputGoogleZoneTexte As HTMLInputElement Dim InputGoogleBouton As HTMLGenericElement 'HTMLInputElement Dim ZoneDate As HTMLInputElement 'Chargement de la page IE.navigate AdresseServeur IE.Visible = True Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop 'On pointe le membre Document Set IEDoc = IE.document 'Identifiant Set InputGoogleZoneTexte = IEDoc.all("NU_CGMADHE") InputGoogleZoneTexte.Value = Ident 'Mot de passe Set InputGoogleZoneTexte = IEDoc.all("NU_CGMASS") InputGoogleZoneTexte.Value = ModePass 'Bouton validation login+pass Set InputGoogleBouton = IEDoc.all("B1") InputGoogleBouton.Click '*** Si je mets le point d'arrêt sur cette ligne, le reste de la macro fonctionne *** 'Application.Wait (Now + TimeValue("0:00:05")) Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop 'Application.Wait (Now + TimeValue("0:00:05")) Set IEDoc = IE.document 'Je ne sais pas s'il est utile de re-préciser ? 'Date début Set ZoneDate = IEDoc.all("date_debut_form") ZoneDate.Value = Format(DateDeb, "dd/mm/yyyy") '*** Le débogage me met cette ligne en surbrillance, et ZoneDate=Nothing *** 'Date fin Set ZoneDate = IEDoc.all("date_fin_form") ZoneDate.Value = Format(DateFin, "dd/mm/yyyy") 'Bouton validation dates Set InputGoogleBouton = IEDoc.all("submit_button") InputGoogleBouton.Click Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop 'Bouton Détails Set InputGoogleBouton = IEDoc.all("button_details_noeud") InputGoogleBouton.Click ' Suite de la macro ...
La première page:
Qui mène à la deuxième page:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <form method="POST"> <!--webbot bot="Validation" s-display-name="polo" s-data-type="String" b-allow-letters="TRUE" b-allow-digits="TRUE" b-value-required="TRUE" i-minimum-length="11" i-maximum-length="11" --> <input type="text" name="NU_CGMADHE" size="20" maxlength="14" value=""?><br> <!--webbot bot="Validation" s-display-name="polo" s-data-type="String" b-allow-letters="TRUE" b-allow-digits="TRUE" b-value-required="TRUE" i-minimum-length="11" i-maximum-length="11" --> <input type="password" name="NU_CGMASS" size="20" maxlength="16" value=""?><br> <input type="submit" value="VALIDATION" name="B1" class="submit" style="font-size: 10pt"> </form>
Merci d'avance pour votre aide.
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 <form method="post" class="nice" action="stat_conjoncturelle.php?sess=5u054jjupokr5083fqnscs40t41430291355&conj=0"> <fieldset> <div class="row"> <div class="five columns"> <label>Date de début</label> <input type="text" name="date_debut_form" id="date_debut_form" class="input-text" value="" /> </div> <div class="five columns"> <label>Date de fin</label> <input type="text" name="date_fin_form" id="date_fin_form" class="input-text" value="" /> </div> </div> <div class="row" >;</div> <div class="row"> <input type="submit" class="nice radius button" value="Valider" id="submit_button"> <input type="hidden" value="" name="hidden_days" jours="" id="hidden_days" value="" /> </div> </fieldset> </form>
Partager