Bonjour,

A partir d'Excel, je remplis des formulaires sous IE11.
Pas de soucis pour remplir les zones de texte libre, mais je n'arrive pas à remplir les zones de liste déroulante.
Le code VBA plante sur l'instruction d'affectation de la valeur à la zone gérée par la liste déroulante.

Merci de votre aide.
Cordialement,
Loïc

J'ai essayé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
IE.Document.All.Item("SUPREF_SupplierOrderGroup_key" & frn & "termsOfPaymentId_key").Value = "60 jours"
IE.Document.All.Item("SUPREF_SupplierOrderGroup_key" & frn & "termsOfPaymentId_key").selectedIndex = 4       ' la 4ème valeur de la liste déroulante
Le code de ma macro est :

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
Set IE = CreateObject("internetExplorer.Application") 'Définit l'objet IE comme application internet Explorer
Const READYSTATE_COMPLETE = 4 'Définis la constante Readystate_complete
 IE.navigate "http://monadresse.fr"
        Application.Wait Time + TimeSerial(0, 0, 2)
        IE.Visible = True
        With IE
            Do Until .ReadyState = 4
            Loop 'attend la fin du chargement
        End With
 
Set elementHtml = IE.Document.All.Item
        If Not elementHtml Is Nothing Then
             IE.Document.All.Item("SUPREF_SupplierGroup_key" & frn & "ape_key").Value = code_ape              
             IE.Document.All.Item("SUPREF_SupplierOrderGroup_key" & frn & "termsOfPaymentId_key").Value = "60 jours"
        end if
Le code APE est une zone de texte libre. Sa mise à jour fonctionne.
Le délai de paiement est une zone de liste déroulante. Sa mise à jour fait planter la macro !

Le code source de la page web est le suivant pour la zone de liste déroulante :
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
<tr >
    <td><label required
 for="SUPREF_SupplierOrderGroup_key331733494termsOfPaymentId_key" bubble="Saisissez une condition de règlement. En précisant le délai et le jour de règlement. Par exemple : 30j fin de mois."
>Conditions de règlement</label>    </td>
    <td>  	    
<div class="fsuggest" data-mode="true" data-rule="content" data-ee="false">
    <div class="fsg-cut">
        <div class="fsg-mobile">
            <div class="fsg-list-container">
                <div class="fsg-list"><!-- <i data-id='90055'>10 jours</i><i data-id='90057'>30 jours</i><i data-id='90059'>45 jours</i><i data-id='90061'>60 jours</i><i data-id='90053'>Immédiat</i>--></div>
            </div>
        </div>
    </div>
        <div class="fsg-form-els"><input type="text" id="SUPREF_SupplierOrderGroup_key331733494termsOfPaymentId_key" value="45 jours" size="50"><input type="hidden" name="SUPREF_SupplierOrderGroup_key331733494termsOfPaymentId_key" value="90059"><a class="btn" href="javascript:void(0)">&nbsp;</a></div>
</div>
</td>
</tr>