IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA et IE : Liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut 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 : 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 !

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Je ne viens pas t'aider mais te donner un conseil : met les balises de code dans ton message (en l'éditant), ça donnera aux gens qui passent par ici envie de t'aider parce que là ce que tu as écrit ça fait mal aux yeux
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut
    J'ai fini par trouver la solution, la première ligne était à ajouter pour que cela fonctionne sous IE 9...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IE.document.getElementById("chaine_change").Focus
    IE.document.getElementById("chaine_change").selectedIndex = 2
    IE.document.getElementById("chaine_change").FireEvent ("onchange")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] choix valeur liste déroulante (champ texte d'1 table)
    Par Lou Pitchoun dans le forum Access
    Réponses: 14
    Dernier message: 22/02/2006, 11h27
  2. [VBA-E] liste déroulante
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/02/2006, 15h19
  3. VBA : ajouter une valeur dans une liste déroulante
    Par remi59 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2005, 11h01
  4. [Débutant] VBA Excel : Liste déroulante
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/12/2005, 15h09
  5. Réponses: 4
    Dernier message: 16/06/2005, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo