Bonjour,
Je débute dans le pilotage d'Internet Explorer via VBA et malgré les tutoriels que j'ai pu lire je suis très vite arrivée à un problème dans le développement de mon code...
Je n'ai jamais fait de html, ni de javascript.
Mon problème est le suivant : je n'arrive pas à sélectionner une valeur, autre que celle proposée par défaut, dans une liste déroulante.
Mon code VBA simplifié est le suivant (il y a la phase de connexion à mon compte du site via mes identifiant et mot de passe qui fonctionne très bien) :
Une erreur à alors lieu lors de l'exéction sur la ligne " menu.Value = "51" " m'indiquant que la "variable objet ou variable de bloc With non définie".
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 Sub WaitIE(IE As InternetExplorer) Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop End Sub Sub test() Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim menu As HTMLSelectElement IE.navigate "url site" IE.Visible = True WaitIE IE Set IEDoc = IE.document Set menu = IEDoc.all("chaine_change") menu.Value = "51" WaitIE IE Set IE = Nothing Set IEDoc = Nothing End Sub
Après recherches sur nombreux forums, j'ai pu isoler le problème à la présence d'un "onchange" qui appelle une fonction javascript prenant comme argument ma sélection.
Voici le code html :
Code html : 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 <table cellspacing="0" cellpadding="0" border="0" width="100%" align="center" height="87%"> <tr> <td width="211" class="fdx" valign="top" height="100%" valign="top"> <style> .mdp_pass{color:#FFFFFF;font-size:13px;font-weight:bold;text-decoration:none;cursor:pointer;} .mdp_pass:hover{text-decoration:underline;} </style> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td style="width:211px;" align="center"> <form method="POST" action="adresse de mon site url" > <select name="chaine_change" id="chaine_change" onChange="xajax_ChangeChaine(this.value);" style="width:150px;" name="chaine" class="champs"> <option value="51" >chaine1</option> <option value="50" >chaine2</option> <option value="49" selected= selected >chaine3</option> </select> <br /> <br />
Merci d'avance pour votre aide !
Partager