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 :

Clique sur liste déroulante dans page Web


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut
    Bonjour,

    D'abord un grand bravo pour cet excellent tuto .

    Pour ma part j'ai une question sur les listes déroulantes. Tu a montré comment sélectionner un item dedans ou comment récupérer tous les choix de cette liste, mais sur certains site lorsque l'on sélectionne un item et bien la page change en fonction de celui-ci.

    Or avec la méthode de sélection que tu as décrite, rien ne se passe. Enfin le bon item est sélectionné dans la liste, mais la page ne change pas pour autant, et il n'y a pas de bouton "OK" pour valider mon choix sur la page..

    Peux-tu m'aider sur ce point ?

    Pour ma part j'essaye tout simplement de "recharger" la page en fonction de valeurs dans une liste déroulante.

    Voici mon code :

    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
    57
    58
    59
    60
    61
    62
    63
    Sub ListeDeroulanteRecup()
     
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim htmlTagCol As IHTMLElementCollection
    Dim htmlSelectElem As HTMLSelectElement
    Dim htmlGeneric As HTMLGenericElement
    Dim NbrEntree As Integer
    Dim TableauValeurDate()
    Dim TableauValeurResultats()
    Dim TheEntree As Integer
     
       'Ouvre la page Web
       IE.Navigate "https://www.fdj.fr/jeux/jeux-de-tirage/loto/resultats"
       IE.Visible = False
     
       WaitIE IE
     
       Set IEDoc = IE.document
     
       'On va sur l'objet qui contient la liste des indices
       Set htmlSelectElem = IEDoc.getElementById("selectTirage")
     
       'On détermine le nombre d'entrées contenues dans la liste
       'Ce nombre correspond au nombre de balises <option
       Set htmlTagCol = htmlSelectElem.getElementsByTagName("option")
       NbrEntree = htmlTagCol.Length
     
       'On redimensionne le tableau qui va contenir les valeurs
       ReDim TableauValeurDate(NbrEntree)
       ReDim TableauValeurResultats(NbrEntree)
     
       'On boucle sur chaque entrée
       For TheEntree = 1 To NbrEntree - 1
          ' DATE
          TableauValeurDate(TheEntree - 1) = htmlTagCol(TheEntree).innerText
     
          ' RESULTATS TIRAGE
          TableauValeurResultats(TheEntree - 1) = IEDoc.getElementsByClassName("loto_numeros mb10 fl sprite-jeux-bg_resultat_loto")(0).innerText
     
          'On sélectionne l'indice n+1
          htmlSelectElem.selectedIndex = TheEntree
          htmlSelectElem.FireEvent ("onchange")
          'htmlSelectElem.Click
     
          WaitIE IE
       Next
     
       'On place ces valeurs dans une Feuille Excel
       ThisWorkbook.Sheets("Valeur_Liste").[A4].Resize(NbrEntree).Value = WorksheetFunction.Transpose(TableauValeurDate)
       ThisWorkbook.Sheets("Valeur_Liste").[B4].Resize(NbrEntree).Value = WorksheetFunction.Transpose(TableauValeurResultats)
     
       Set IE = Nothing
       Set IEDoc = Nothing
     
    End Sub
     
    Sub WaitIE(IE As InternetExplorer)
       'On boucle tant que la page n'est pas totalement chargée
       Do Until IE.ReadyState = READYSTATE_COMPLETE
          DoEvents
       Loop
    End Sub
    J'ai essayé avec .click() et .fireEvent("onchange") mais aucun ne semble fonctionner.
    Je suis avec IE 11.

    Merci

    Haribo.

  2. #2
    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 et bonne année à tous

    Alors, la FDJ fait visiblement quelques contrôles supplémentaires pour s'assurer que les manip sur la page ne sont pas faite via du code mais bien par actions humaines. J'imagine donc qu'ils n'apprécient pas trop la manœuvre.

    ++
    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

Discussions similaires

  1. Condition sur liste déroulante dans requête
    Par typouce dans le forum IHM
    Réponses: 3
    Dernier message: 26/02/2015, 11h20
  2. [AC-2007] Filtre sur liste déroulante dans sous-formulaire
    Par petitpom dans le forum IHM
    Réponses: 4
    Dernier message: 18/07/2012, 09h41
  3. liste déroulante dans page html accès aux données
    Par akhaa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 12/11/2008, 17h11
  4. liste déroulante dans une page jsp
    Par mike5923 dans le forum Struts 1
    Réponses: 3
    Dernier message: 03/01/2008, 22h28
  5. Réponses: 11
    Dernier message: 26/04/2007, 10h40

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