VBA et IE : Liste déroulante
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) :
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
| 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 |
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".
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:
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 !