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 :

Cliquer sur un élément d'une page internet en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut Cliquer sur un élément d'une page internet en VBA
    Bonjour à tous,

    Je souhaite cliquer sur une div qui contient une image sur une page web.
    Dans le code source l'élément est identifié par id="A9", identifiant unique dans tout le code source, je pensais donc utiliser getElementsByID("A9") pour l'identifier dans le code vba.

    J'ai essayé de multiples choses mais ça me renvoie toujours des erreurs.

    Voila ou j'en suis actuellement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
     
    navigate = "www.dl-ligue.com/DL-ligue/menu_CDF/_BIAAC8ZHBIMAA"
    Shell ("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe -url " & navigate)
    Set element = ie.document.getElementsByID("A9")
    element.Click
    End Sub
    A la fin de l'url il y a un identifiant de session que j'ajoute a chaque fois que je veux lancer la macro.

    Donc si vous voulez un apperçu de la page il faut aller sur www.dl-ligue.com a gauche dans espace joueur cliquer sur championnat de France et sur ce qui s'affiche je souhaite cliquer sur le carré "consulter niveau"

    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 118
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 118
    Points : 1 641
    Points
    1 641
    Par défaut
    Salut,

    Pour interragir avec les navigateurs moderne (Edge, Chrome, firefox), il faut passer par Selenium Web Driver.
    Malheureusement, je n'ai pas plus d'informations à ce sujet.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    J'ai un peu avancé mais la je suis bloqué:

    Je n'arrive pas a faire comprendre à la macro qu'après avoir testé le numéro en A1 (dans la feuille1 du classeur) il faut qu'elle passe à A2 puis A3 etc etc jusqu'à ce que la colonne soit vide.
    La elle fait A1 et j'ai le message "traitement terminé"

    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
    Sub test()
     
        Dim IE As Object
        Dim IEdoc As Object
        Dim DOCelement As Object
        Static L As Long
     
        Set IE = CreateObject("InternetExplorer.Application")
     
        IE.Visible = True
     
        IE.Navigate ("www.dl-ligue.com")
     
        Call pause
     
        Do Until IE.ReadyState = 4
            DoEvents
        Loop
     
        Set IEdoc = IE.document
     
        If Cells(1, 1) Then L = 0
            L = L + 1
            With DOCelement
            Set DOCelement = IEdoc.getElementsByName("A3").Item
            DOCelement.Value = Cells(L, 1).Text
            Set DOCelement = IEdoc.getelementsbytagname("button")(12)
            DOCelement.Click
            End With
     
        If Cells(L + 1, 1) <> "" Then MsgBox ("Traitement terminé !")
     
        Set IE = Nothing
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub pause()
          Application.Wait Now() + TimeValue("00:00:10")
    End Sub
    Si quelqu'un peut me corriger le code merci d'avance.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    Citation Envoyé par Icedarts Voir le message
    Donc si vous voulez un apperçu de la page il faut aller sur www.dl-ligue.com a gauche dans espace joueur cliquer sur championnat de France et sur ce qui s'affiche je souhaite cliquer sur le carré "consulter niveau"
    Pour arriver à ta page tu peux essayer ceci (en espérant que les Id (ex: M21) ne changent pas dans le temps) :
    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
    Sub testJP()
        Dim IE As Object
        Dim IEdoc As Object
        Dim DOCelement As Object, FrameLeftDoc As Object
        Set IE = CreateObject("InternetExplorer.Application")
        IE.Visible = True
        IE.Navigate ("www.dl-ligue.com")
        WaitIE IE
        Set IEdoc = IE.document
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        Set DOCelement = FrameLeftDoc.all("M21")
        DOCelement.Click
        WaitIE IE
        Set IEdoc = IE.document
        Application.Wait Now() + TimeValue("00:00:01")
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        'Application.Wait Now() + TimeValue("00:00:5")
        Set DOCelement = FrameLeftDoc.all("A9")
        DOCelement.Click
        WaitIE IE
        Application.Wait Now() + TimeValue("00:00:20")
        IE.Quit
        Set IE = Nothing
     
     
    End Sub
     
     
    Sub WaitIE(IE As Object)
       'On boucle tant que la page n'est pas totalement chargée
       Do Until Not IE.Busy And IE.readyState = 4
          Application.Wait Now() + TimeValue("00:00:01")
          DoEvents
       Loop
    End Sub
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,

    Pour arriver à ta page tu peux essayer ceci (en espérant que les Id (ex: M21) ne changent pas dans le temps) :

    Ami calmant, J.P
    Merci ça fonctionne parfaitement bien.

    Peux tu m'aider pour la suite de mon code?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        If Cells(1, 1) Then L = 0
            L = L + 1
            With DOCelement
            Set DOCelement = IEdoc.getElementsByName("A3").Item
            DOCelement.Value = Cells(L, 1).Text
            Set DOCelement = IEdoc.getelementsbytagname("button")(12)
            DOCelement.Click
            End With
     
        If Cells(L + 1, 1) <> "" Then MsgBox ("Traitement terminé !")
    Je pense qu'il me manque quelque chose pour qu'après le End With ça revienne a L = L + 1 mais je ne trouve pas quoi :/

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Plutôt que de me montrer un code que je ne comprend pas dis moi ce que tu veux faire exactement ?
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    Alors attention ça va être long ^^

    J'essaie de faire un fichier qui m'ouvre la page internet que tu as vu.
    Qui va tester plein de numéro (qui seront dans la colonne A de la feuille 1 du classeur)
    J'y suis presque mais je n'arrive pas a faire boucler la macro pour qu'après avoir testé A1 elle passe a A2 et ainsi de suite.
    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
    Sub testJP()
        Dim IE As Object
        Dim IEdoc As Object
        Dim DOCelement As Object, FrameLeftDoc As Object
        Set IE = CreateObject("InternetExplorer.Application")
        IE.Visible = True
        IE.Navigate ("www.dl-ligue.com")
        WaitIE IE
        Set IEdoc = IE.document
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        Set DOCelement = FrameLeftDoc.all("M21")
        DOCelement.Click
        WaitIE IE
        Set IEdoc = IE.document
        Application.Wait Now() + TimeValue("00:00:01")
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        'Application.Wait Now() + TimeValue("00:00:5")
        Set DOCelement = FrameLeftDoc.all("A9")
        DOCelement.Click
        WaitIE IE
     
            If Cells(1, 1) Then L = 0
            L = L + 1
            With DOCelement
            Set DOCelement = IEdoc.getElementsByName("A3").Item
            DOCelement.Value = Cells(L, 1).Text
            Set DOCelement = IEdoc.getelementsbytagname("button")(12)
            DOCelement.Click
            End With
     
        If Cells(L + 1, 1) <> "" Then MsgBox ("Traitement terminé !")
     
        Set IE = Nothing
     
     
    End Sub
    Avec ce code ça teste A1 et j'ai le message "Traitement terminé"

    Après cette étape je pourrais passer à la suite qui est de récupérer en feuille 2 le texte qui s'affiche après le clique sur le bouton valider ("button")(12)
    Texte identifié par l'id tzA5
    Nom : qywc.jpg
Affichages : 67
Taille : 129,1 Ko

    Dernière chose qu'il faudra gérer c'est l'apparition d'une pop-up quand le numéro n'est pas valide
    Nom : 7gc2.jpg
Affichages : 66
Taille : 65,1 Ko

    Tu peux avoir cette pop-up avec le numéro 48009.

    Fichier test en pièce jointe

    Merci de ton aide
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    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
    Sub testJP()
        Dim IE As Object
        Dim IEdoc As Object, Res as Object
        Dim DOCelement As Object, FrameLeftDoc As Object
        Dim Championnat As Object, NumEquipe As Object, btnValider As Object
        Set IE = CreateObject("InternetExplorer.Application")
        IE.Visible = True
        IE.Navigate ("www.dl-ligue.com")
        WaitIE IE
        Set IEdoc = IE.document
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        Set DOCelement = FrameLeftDoc.All("M21")
        DOCelement.Click
        WaitIE IE
        Set IEdoc = IE.document
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        Set DOCelement = FrameLeftDoc.All("A9")
        DOCelement.Click
        WaitIE IE
        Set IEdoc = IE.document
        Set Championnat = IEdoc.All("A1")
        Championnat.Value = "2"  'Doublette
        Set NumEquipe = IEdoc.All("A3")
        NumEquipe.Value = "48001"
        Set btnValider = IEdoc.All("A4")
        btnValider.Click
        WaitIE IE
        Set Res = IEdoc.All("tzA5")
        Debug.Print Res.innerText
        Application.Wait Now() + TimeValue("00:00:10")
        IE.Quit
        Set IE = Nothing
    End Sub
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 118
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 118
    Points : 1 641
    Points
    1 641
    Par défaut
    PS:
    Je t'invite vivement à te renseigner sur Selenium Web Driver,
    Internet Explorer est arrivé en fin de support, on peux donc le considérer comme obsolête.

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    Eh ben la c'est vraiment pas mal, l'ajout de la ligne pour la sélection dans le menu déroulant, nickel!!!

    En revanche la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Res = IEdoc.All("tzA5")
        Debug.Print Res.innerText
    Ça copie le texte?
    Je n'ai rien dans le bloc note, crtl + v ne donne rien non plus.
    J'ai lu que c'était une commande de débugage.

  11. #11
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Citation Envoyé par deedolith Voir le message
    PS:
    Je t'invite vivement à te renseigner sur Selenium Web Driver,
    Internet Explorer est arrivé en fin de support, on peux donc le considérer comme obsolête.
    Effectivement mais tant qu'IE fonctionne il faut en profiter et pour Selenium en VBA il y a Selenium Basic mais il n'est plus maintenu depuis 2016 et il faut installer des choses. Sinon il faut utiliser un langage comme le python qui a un module selenium à jour.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  12. #12
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Citation Envoyé par Icedarts Voir le message
    En revanche la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Res = IEdoc.All("tzA5")
        Debug.Print Res.innerText
    Ça copie le texte?
    Je n'ai rien dans le bloc note, crtl + v ne donne rien non plus.
    J'ai lu que c'était une commande de débugage.
    Debug.Print affiche dans la fenêtre Exécution de l'Editeur VBA.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  13. #13
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    Merci

    Alors j'ai rajouté
    Application.Wait Now() + TimeValue("00:00:10")
    Après le WaitIE IE
    car l'exécution du code doit être tout de même trop rapide j'avais ça dans la fenetre d'execution
    %1 joue en %2
    Niveau : %3
    Après les 10s de pause j'ai bien
    SQUADRA 1 jouant en Equipe Masculin
    Niveau : National 4

    Il faut que j'ajuste la pause mais le site vient d'être mis en maintenance ^^

    Dès que le site revient je tente ça:

    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
    Sub testJP()
        Dim IE As Object
        Dim IEdoc As Object, Res As Object
        Dim DOCelement As Object, FrameLeftDoc As Object
        Dim Championnat As Object, NumEquipe As Object, btnValider As Object
        Set IE = CreateObject("InternetExplorer.Application")
        IE.Visible = True
        IE.Navigate ("www.dl-ligue.com")
        WaitIE IE
        Set IEdoc = IE.document
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        Set DOCelement = FrameLeftDoc.All("M21")
        DOCelement.Click
        WaitIE IE
        Set IEdoc = IE.document
        Set FrameLeftDoc = IEdoc.frames("leftframe").document
        Set DOCelement = FrameLeftDoc.All("A9")
        DOCelement.Click
        WaitIE IE
        Set IEdoc = IE.document
        Set Championnat = IEdoc.All("A1")
        Championnat.Value = "1"  'Choix menu déroulant
        If Cells(1, 1) Then L = 0
            L = L + 1
            With DOCelement
            Set DOCelement = IEdoc.getElementsByName("A3").Item
            DOCelement.Value = Cells(L, 1).Text
     
     
        Set btnValider = IEdoc.All("A4")
        btnValider.Click
        End With
     
        WaitIE IE
        Application.Wait Now() + TimeValue("00:00:01")
        Set Res = IEdoc.All("tzA5")
        Debug.Print Res.innerText
     
        If Cells(L + 1, 1) <> "" Then MsgBox ("Traitement terminé !")
        Next L
     
        Application.Wait Now() + TimeValue("00:00:10")
        IE.Quit
        Set IE = Nothing
    End Sub
     
    Sub WaitIE(IE As Object)
       'On boucle tant que la page n'est pas totalement chargée
       Do Until Not IE.Busy And IE.readyState = 4
          Application.Wait Now() + TimeValue("00:00:01")
          DoEvents
       Loop
    End Sub

  14. #14
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    C 'est plus fiable en utilisant un Webdriver lié à un navigateur autre que I.E
    A la place de SeleniumBasic, j'ai trouvé un WebDriver plus récent (Mars 2023) que SeleniumBasic, Il est moins complet et il manque quelques fonctionnalités mais il a l'avantage de ne pas avoir à installer des logiciels ( il faut importer ses modules de classe VBA et ses modules dans le classeur où l'on veut l'utiliser (ou alors mettre ses modules dans les macros personnelles).
    vous pouvez trouver les modules ici : selenium-wrapper-vba
    Télécharger le code (code/Download zip)
    Extraire de ce zip le répertoire src
    Il semble y avoir un bug dans le fichier WebDriverOptions.cls -> Dans ce fichier il faut remplacer les LF par des CRLF ( avec Notepad++ par exemple)
    Importer tous les fichiers dans son classeur
    Il faut cocher dans les références Microsoft Scripting Runtime car les modules de classe utilisent des dictionnaires.
    Télécharger le WebDriver qui correspond au navigateur que l'on veut utiliser. Par exemple pour MSEdge c'est ici . Bien choisir la version qui correspond à la version du navigateur que l'on utilise. Placer ce driver dans un répertoire accessible.
    Et voici un exemple de code pour récupérer les infos de doublettes pour 50 équipes en utilisant MSEdge :
    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
    Sub testJP()
        Dim driver As WebDriver
        Dim LeftFrame As WebElement, Lien As WebElement
        Dim Championnat As WebElement, NumEquipe As WebElement, NumJoueur As WebElement
        Dim btnConsult As WebElement, btnValider As WebElement, Res As WebElement
        Dim i As Long, Infos() As String
        Set driver = New WebDriver
        driver.Edge "d:\dev\webdrivers\msedgedriver.exe"
        driver.OpenBrowser
        driver.SetTimeouts 30000, 30000, 10000
        driver.NavigateTo "https://www.dl-ligue.com"
        driver.MaximizeWindow
        Set LeftFrame = driver.FindElement(name, "leftframe")
        driver.SwitchToFrame LeftFrame
        Set Lien = driver.FindElement(ID, "M21")
        Lien.Click
        Set btnConsult = driver.FindElement(ID, "A9")
        btnConsult.Click
        Set Championnat = driver.FindElement(ID, "A1")
        Set NumJoueur = driver.FindElement(ID, "A2")
        Set NumEquipe = driver.FindElement(ID, "A3")
        Set btnValider = driver.FindElement(ID, "A4")
        Set Res = driver.FindElement(ID, "tzA5")
        Championnat.SendKeys "Doublette"
        On Error Resume Next
        For i = 1 To 50
            NumEquipe.Clear
            NumEquipe.SendKeys CStr(Cells(i, 1).value)
            btnValider.Click
             If InStr(1, Res.GetText, "%1") Then
                Debug.Print CStr(NumEquipe.GetProperty("value")), " : ", " - "
             Else
                Infos = Split(Res.GetText, vbCrLf)
                Debug.Print CStr(NumEquipe.GetProperty("value")) + " : " + _
                Infos(0) + " -> " + Infos(1)
             End If
        Next i
        On Error GoTo 0
        Application.Wait Now() + TimeValue("00:00:10")
        driver.MinimizeWindow
        driver.CloseBrowser
        driver.Quit
        Set driver = Nothing
     
     
    End Sub
    Il n'y a plus besoin de mettre des boucles d'attente. Les messages d'alerte (quand par exemple il n'y a pas d'équipe avec le numéro demandé) ne sont plus bloquant car inhiber par le On Error Resume Next

    voici ce que j'obtiens comme résultat :
    48 001 : SPARTIATES 2 jouant en Doublette Masculin -> Niveau : National 4
    48 002 : CHAMEAUX jouant en Doublette Mixte -> Niveau : Master
    48 003 : NO STRESS jouant en Doublette Féminine -> Niveau : Pro
    48 004 : BIEN EVITE jouant en Doublette Mixte -> Niveau : Pro
    48 005 : JON ET LES CAFARDS jouant en Doublette Mixte -> Niveau : Master
    48 006 : -
    48 007 : CAFARDS DE L' EST jouant en Doublette Mixte -> Niveau : Master
    48 008 : SQUADRA POLAK jouant en Doublette Masculin -> Niveau : National 3
    48 009 : SPARTIATES jouant en Doublette Masculin -> Niveau : National 2
    48 010 : BARJOTS jouant en Doublette Masculin -> Niveau : National 4
    48 011 : THE PERFECT SHOT jouant en Doublette Masculin -> Niveau : Master
    48 012 : TA PAS L'DROIT jouant en Doublette Masculin -> Niveau : National 1
    48 013 : LUCKY LUKE jouant en Doublette Masculin -> Niveau : National 5
    48 014 : -
    48 015 : -
    48 016 : POIVROTS jouant en Doublette Masculin -> Niveau : National 5
    48 017 : SQUADRA 1 jouant en Doublette Masculin -> Niveau : National 1
    48 018 : -
    48 019 : -
    48 020 : MEXICAINS 1 jouant en Doublette Masculin -> Niveau : National 3
    48 021 : DRAGON DARTS jouant en Doublette Masculin -> Niveau : National 1
    48 022 : SIMTON ET PUMBA jouant en Doublette Masculin -> Niveau : Master
    48 023 : BKR jouant en Doublette Mixte -> Niveau : Pro
    48 024 : PERIGOURDINS jouant en Doublette Masculin -> Niveau : National 4
    48 025 : -
    48 026 : SQUADRA TIKI jouant en Doublette Masculin -> Niveau : National 5
    48 027 : SQUADRA MIXTE jouant en Doublette Mixte -> Niveau : Master
    48 028 : PORTIER 1 jouant en Doublette Masculin -> Niveau : National 1
    48 029 : PORTIER 2 jouant en Doublette Masculin -> Niveau : National 2
    48 030 : COLOC DARTS jouant en Doublette Masculin -> Niveau : National 5
    48 031 : -
    48 032 : -
    48 033 : -
    48 034 : JACKY & MICHEL jouant en Doublette Masculin -> Niveau : National 3
    48 035 : -
    48 036 : CHAMBREUSES jouant en Doublette Masculin -> Niveau : National 5
    48 037 : CHAMBREURS N'IMPORTE jouant en Doublette Masculin -> Niveau : National 4
    48 038 : NINJAS BULLES jouant en Doublette Masculin -> Niveau : National 1
    48 039 : ASPTT 1 jouant en Doublette Masculin -> Niveau : National 4
    48 040 : ASPTT NANCY 2 jouant en Doublette Masculin -> Niveau : National 5
    48 041 : ROCK'N DART jouant en Doublette Masculin -> Niveau : National 4
    48 042 : -
    48 043 : -
    48 044 : SEMI CROUSTILLANTS jouant en Doublette Masculin -> Niveau : National 4
    48 045 : SOUTH DARTS jouant en Doublette Masculin -> Niveau : National 1
    48 046 : TNT 1 jouant en Doublette Masculin -> Niveau : Pro
    48 047 : TNT 2 jouant en Doublette Masculin -> Niveau : National 2
    48 048 : TNT 4 jouant en Doublette Masculin -> Niveau : National 4
    48 049 : TNT 3 jouant en Doublette Masculin -> Niveau : National 4
    48 050 : TNT 5 jouant en Doublette Masculin -> Niveau : National 5
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  15. #15
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    J'avais laissé ça de côté pour le we et je suis dessus depuis ce matin et la je découvre votre message...

    Aller hop tout le travail a mettre à la corbeille lol

    Alors dans le fichier WebDriverOptions.cls je ne trouve pas de LF à remplacer

    Je pense avoir fait tout le reste correctement.
    Ma version de edge est Version 114.0.1823.37 (Version officielle) (64 bits) sur le lien pour le webdriver je n'ai que Version : 114.0.1823.18 en plus récent

    Du coup quand j'exécute le code j'ai tout de suite une erreur dans le fichier WebDriverOptions

    Nom : webdriveroption.JPG
Affichages : 63
Taille : 91,0 Ko

    Merci d'avance pour l'aide.

  16. #16
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    en pièce jointe le fichier WebDriverOptions.cls corrigé
    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  17. #17
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    C'est parfait ça fonctionne impec!

    Me reste plus que ce sur quoi j'étais depuis ce matin lol

    Récupérer les données directement en feuil2.

    A un moment j'y étais presque

    Avec ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                Set Res = IEdoc.All("tzA5")
                With Sheets("Données")
                    For T = 1 To 100
                        With .Cells(T + 1, 1)
                            .Value = Res.innerText
                        End With
                    Next T
                'Debug.Print Res.innerText
                End With
    Mais maintenant ça recopie juste le contenu de la variable dans les 100 première cellules.
    Il me semble pourtant qu'à un moment dans la journée ça fonctionnait bien.

    Mais j'ai voulu continuer et en essayant de faire que ça reprenne à la 101e cellule lors de la prochaine série de 100 mais j'ai tout cassé lol

  18. #18
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Points : 8
    Points
    8
    Par défaut
    C'est bon merci à tous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil2.cells(i,1)=CStr(NumJoueur.GetProperty("value")) + " : " & Infos(0) & " -> " & Infos(1)

Discussions similaires

  1. [XL-2016] Récupération d'info sur une page internet en vba
    Par ericlb56 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 22/04/2018, 22h29
  2. cliquer sur un bouton d'une page HTML avec excel
    Par gaby2006 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/06/2017, 17h58
  3. Réponses: 5
    Dernier message: 19/05/2015, 01h38
  4. Réponses: 1
    Dernier message: 08/07/2013, 07h30
  5. [XL-2010] Cliquer sur un bouton d'une page HTML
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2013, 21h43

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