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 : 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
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 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 !