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 :

choix Liste déroulante via VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 7
    Par défaut choix Liste déroulante via VBA
    Bonjour

    J'ai fais des recherches et fais plusieurs tests mais je me retrouve toujours bloqué sans comprendre la raison.

    je dois choisir sur une liste déroulante mon entreprise:

    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
    <div class="tab-content">
        <div id="declaSinistre-liste" class="tab-pane fade in active">
            <br/>
            <div class="row">
     
        <form method="POST" name="listeSalarie" id="listeSalarie">
        <div class="col-md-3">
            <label>Entreprise</label><br/>
            <select name="entrepriseFilter" id="listeSalarieentrepriseFilter" class="form-control"><option value="" selected="selected">Sélectionner une entreprise</option>
    <option value="1000178030">a</option>
    <option value="1000178028">b</option>
    <option value="1000178029">c</option>
    <option value="1000178032">d</option>
    <option value="1000178033">e</option></select>    </div>

    voici mon code via un tuto que j'ai trouvé:
    (avant je me connecte une fois afin de laisser en arriere plan la page ouverte pour qu'on ne me demande pas de me loguer)

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim htmlTagCol As IHTMLElementCollection
    Dim htmlSelectElem As HTMLSelectElement
    Dim NbrEntree As Integer
    Dim TableauValeur()
    Dim TheEntree As Integer
     
    Set IEDoc = IE.document
     
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
     
       IE.navigate "https://mercer-rh.mercernet.fr/interruption-travail/declarer"
     
    Application.Wait (Now + TimeValue("0:00:02"))
     
    Do Until IE.readyState = READYSTATE_COMPLETE
    DoEvents
    Loop 'attend la fin du chargement
    '
     
    Set IEDoc = IE.document
     
       'On va sur l'objet qui contient la liste des indices
       Set htmlSelectElem = IEDoc.all("entrepriseFilter")
     
    Application.Wait (Now + TimeValue("0:00:02"))
     
       'On sélectionne l'indice "ter" via sa valeur unique
       'htmlSelectElem.Value = "1000178032"
     
    htmlSelectElem.selectedIndex = 2
    mais rien ne se passe et je ne comprends pas pourquoi

    j'ai aussi essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IE.document.getElementsByName("entrepriseFilterf").Item
                .Click
                .Focus
                .Value = 1000178032
    mais cela ne fonctionne pas

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 7
    Par défaut
    J4ai essayé d'avancer sans en sélectionnant moi meme le salarié mais je reste tjs bloqué avec ces choix

    sur la page d'après j'impute une date. Lorsque cette date est imputée et que je clique sur la liste déroulante, les choix s'actualisent (si je ne mets pas de date aucun choix n'apparait) et je peux choisir ce que je souhaite.

    je n'arrive pas à faire mon choix avec la vba

    Nom : prev.PNG
Affichages : 438
Taille : 64,7 Ko


    (sur la capture d ecran j'ai choisis avec la souris pas avec la vba)

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    Set IEDoc = IE.document
     
     
     
        Set IEDoc = IE.document
        With IEDoc
            With IE.document.getElementsByName("dateSinistre").Item
                .Click
                .Focus
                .Value = "01/01/2022"
     
                Call WaitIE(IE)
            End With
            End With
     
     
     
     Application.Wait (Now + TimeValue("0:00:03"))
      'Application.SendKeys "~", True
      Application.SendKeys "ESC", True
    ' htmlSelectElem.FireEvent "onchange"
     
    Application.Wait (Now + TimeValue("0:00:03"))
      'Application.SendKeys "ESC", True
     ' Application.SendKeys "ESC", True
     Application.SendKeys "~", True
     
     Set IEDoc = IE.document
     
     
     
     
     '   Set GenericElem = IEDoc.all("natureArretElement_3")
     '
    '   GenericElem.Click
     
     
     
       Set GenericElem = IEDoc.all("natureArretElement")
     
    GenericElem.selectedIndex = 3
     
     
       Set GenericElem = IEDoc.all("natureArretElement")
     
    GenericElem.selectedIndex = 4
     
       WaitIE IE
     
     
     
    'htmlSelectElem.selectedIndex = 4
     
     
     'Application.SendKeys "~", True


    edit : finalement j'ai réussi en "tranchant" via les sendkeys

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    N'ayant pas accès aux pages sur lesquelles tu travailles, mes remarques ne seront peut-être pas pertinentes.

    Il est néanmoins possible au niveau de la page d'accueil de récolter quelques info

    Nom : 2022-01-27_064017.png
Affichages : 423
Taille : 27,5 Ko

    Si je regarde les events liés au champ Identifiant, il n'utilise pas Click mais MouseDown et MouseUp.
    Tu peux essayer de regarder sur tes éléments,la c'est une vu du code offerte par FireFox mais les autres navigateurs offrent probablement les mêmes informations. Tu devrais pouvoir y trouver quels events sont utilisés.
    Tu peux ensuite naviguer dans les code exécutés via ces events.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            $Login_txtUsername.keydown(function (event) {
                if (event.which == 13) {
                    event.preventDefault();
                    event.target.blur();
                    loginAttempt();
                }
            });
    Dans le cas présent, il y a des procédures tel preventDefault et loginAttempt qu'il faudrait peut-être appeler pour "valider" le futur contenu saisie comme étant bien une saisie.
    Pour les appel de procédure tu trouveras, je l'espère, un peu d'aide ici

    De plus en plus de site "empêchent" l'utilisation de bot. Je ne sais pas dire si cet empêchement est volontaire où lié à des technologie ou méthode de travail.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 7
    Par défaut
    Bonjour Qwazerty,

    Je te remercie pour ton message cependant je ne m'occupe pas de la page d'identification, car je me connecte une fois puis par la suite je n'ai pls besoin de me connecter.

    Je vais directement sur le lien .../déclarer puis je me retrouve bloquer car j''aimerais cliquer sur entreprise et choisir l entreprise x (j'ai transmis le code ci dessus)

    Nom : entreprise.PNG
Affichages : 404
Taille : 9,6 Ko

    J'ai regardé tous tes tutos mais je bloque

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    J'ai bien compris mais la page identification est la seule à laquelle j'ai accès.
    J'extrapole donc son fonctionnement au reste du site (sans certitude bien entendu).

    Le fait que la page d'identification utilise les event "Mouse_Up/Down" peut-être une indication quand je vois que tu essayes d'utiliser Click. Il manque peut-être certaine initialisation faite par ces events.

    Sur le code de la page que tu fournis au début, je vois aussi un <Form qui est en amont de l'élément que tu essaies de manipuler, il arrive que le ciblage des éléments qui suivent se fasse mal ou pas du tout (ça ne semble pas être ton cas puisqu'il n'y a pas de message d'erreur et que ton code ne laisse pas apparaitre de "On error resume next" qui masqueraient ces erreurs).

    Tu devrais regarder si des events particuliers sont liés par exemple à la liste déroulante, Mouse_Down peut-être.
    Tu peux aussi regarder comment le contenu de <Select et des <Options associés évoluent lorsque tu fais une sélection à la main.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 7
    Par défaut
    je te remercie.

    en effet je pense qu'il y a bien un blocage .

    Finalement j'arrive à avancer grâce aux sendkeys.

    je sélectionne d'abord le filtre, puis je joue avec les sendkeys.

    merci pour les retours.

    edit:

    Je crois que c est toi qui l'avait donné mais ce code m'aide énormément:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objbutton = IE.document.getElementById("listeSalariesalarieFilter")
               objbutton.Focus
                objbutton.Click

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

Discussions similaires

  1. Choix dans un menu déroulant via VBA
    Par Nono Sto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/01/2013, 15h45
  2. [Toutes versions] Charger plusieurs xvm dans un fichier modèle via une liste déroulante en vba
    Par eristote dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/08/2011, 09h10
  3. Réponses: 3
    Dernier message: 13/08/2010, 14h02
  4. Liste déroulante via vba
    Par dashblade dans le forum IHM
    Réponses: 5
    Dernier message: 29/05/2008, 11h43
  5. Réponses: 15
    Dernier message: 21/11/2006, 10h13

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