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 :

Excel avec internet explorer


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut Excel avec internet explorer
    Bonjour forum,

    J'ai un code qui permet de sélectionner, un type de paris ainsi que sa mise, mais j'aimerais qu'il interagisse avec excel pour choisir la bonne case a cocher. Supposons que sur une feuille C3 = 1 et que C4 = 2 ainsi de suite jusque 20 si C3 = 1 alors il mise sur le site en question

    Pour l'exemple je vais prendre cette page là

    https://www.zeturf.fr/fr/course/2019...s-princes/turf

    le code principal
    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
    Sub Mise_Zeturf()
        Dim IE As Object, IEDoc As Object
        Dim Boutons As Object, Tables As Object
        Dim I As Integer, J As Integer, Url As String
        Dim LaDate As String, LaReunion As String, LaCourse As String, LePrix As String
     
        If Sheets("Accueil").Range("L2") Then
            LaDate = Format(Sheets("Accueil").Range("L2"), "yyyy-mm-dd")
            LaReunion = Format(Sheets("Accueil").Range("A1"), "General")
            LaCourse = Format(Sheets("Accueil").Range("A2"), "General")
            LePrix = Format(Sheets("Accueil").Range("A3"), "General")
     
        Url = "https://www.zeturf.fr/fr/course/" & LaDate & "/" & LaReunion & LaCourse & "-" & LePrix & "/" & "turf"
     
        Set IE = CreateObject("InternetExplorer.Application")
     
        IE.Visible = True
        IE.Navigate Url
        Do Until IE.ReadyState = 4
            DoEvents
        Loop
     
        Set IEDoc = IE.document
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "chk-change-pari paris-arrondi_79x40_2" Then Exit For
        Next I
        Boutons(I).Click
        Boutons(I).Click
     
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "montant-plus " Then Exit For
        Next I
        Boutons(I).Click
        Boutons(I).Click
        Boutons(I).Click ' <<< 3 click = 4€
        End If
    'IE.Quit
        Set Tables = Nothing
        Set Boutons = Nothing
        Set IEDoc = Nothing
        Set IE = Nothing
     
    End Sub
    et donc en résultat si C3 = 1 ça devrait donné en image.


    Merci a tous pour l'aide apporté

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    bon j'ai un peu regardé et c'est vrai même si on trouve le button on arrive pas a le cliquer même en lui donnant le focus
    après pour être honnête je ne vois aucun intérêt a piloter tes paris par vba

    car pour piloter tes paris il faut avoir au départ la liste de course/reunion dans un sheets

    pourquoi pas un tableau des cotes pour te décider


    la on a rien au départ et tu veux lancer des pari sans connaitre le nom du cheval de chaque ligne

    et pour finir perso je m'abstiendrais tout court de piloter le pari par vba les pages changent souvent de structure et tu n'est pas a l'abri de faire fumer ta carte bleue surtout vu la manière dont tu t'y prends

    je dis ca mais tu fait comme tu veux
    mais pour moi ca n'a aucuns sens: vraiment aucun

    les site de course de chevaux et vba!!!c'est bien pour récupérer les (listes de courses ,tableau de cheval et cote) pour pouvoir travailler dessus hors connexion
    mais ca doit s'arrêter la!!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    bonjour

    les site de course de chevaux et vba!!!c'est bien pour récupérer les (listes de courses ,tableau de cheval et cote) pour pouvoir travailler dessus hors connexion
    mais ca doit s'arrêter la!!!
    Salut Patrick, oui ça j'ai déjà un fichier, voir plusieurs qui récupère musique du cheval, cote, etc sur le pmu, le site geny, le site turfomania mais on le sait récupérer des infos c'est illégale sauf si le site a donné son accord :-) ce que j'ai fait pour le site pmu, je leur ai écrit un courrier pour avoir l'autorisation et mon fichier excel restait dans un but personnel et non commercial. Pour mon cas présent c'est différent je récupère pas d'info, c'est juste un moyen de miser très vite en peu de temps. Et vu que le site zeturf me suis planté souvent dans la panique ou pas fait gaffe , je joue au dernier moment avant le départ donc voilà. Après le nom du cheval on s'en fou un peu puisque a défaut il a un numéro c'est juste ça qui m’intéresse je joue le numéro.
    Ensuite mon fichier excel sur PMU ça fait des années que je l'ai ils ont changer souvent mais comme leur site est toujours basé sur les fichiers json donc ça reste identique.
    un exemple de page json PMU facilement importable et plus rapide a importer que n'importe quel autre moyen. La seule chose qui changé une fois c'est le début de l'adresse lol
    https://tablette.turfinfo.api.pmu.fr...2/participants

    As tu ouvert mon fichier ? Car quand tu clique sur la Réunion ensuite la course et ensuite le bouton macro ça ouvre la bonne page internet du site zeturf et il y a plus qu'a cliquer sur les boutons.

    La date j'ai mis en L2 sur feuille Accueil aujourdhui() +1 ce qui donne a chaque fois demain pour faire les test et avoir les boutons cliquable car si la course est couru alors plus de bouton.
    Si tu clique sur le fichier R4 et course 1 tu aura cette page internet qui s'ouvre avec le SG selectionné et la mise de 4€ donc c'est cliquable les boutons.
    https://www.zeturf.fr/fr/course/2019...bert-viel/turf

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    en regardant de plus près les JS ET les applet JS il y a bien plusieurs protections anti robot
    bon courage pour le forcer
    économise toi et laisse tomber cette idée d'automatisation par vba
    même si tu arrive a la forcer ce sera toujours bancale
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    J'ai édité plus haut

    Sinon sur le site PMU oui il y a un anti robot mais pour importer non via le json, il n'y aucun anti robot car j'importe très facilement notamment les cotes toutes les 10 secondes, ça me prend moins d'une seconde.
    Surtout que le site pmu est divisé en deux les cotes point de vente et les cotes internet.

    Pour le site zeturf pas d'anti robot puisque j'arrive a cliquer sur SP deux fois et a remplir la mise il me manque juste la boucle qui servira a cocher le numéro dans les cases. Comme je l'ai dis si le 1 est affiché en cellule C3 alors il va cocher la case 1 du site avec le fichier que j'ai c'est faisable.

    Mais bon comme je te sens pas chaud depuis le début, juste dis moi si t'as pas envie de le faire.

    Je met le lien du fichier car trop compliqué a tous détailler dans un post.

    https://www.cjoint.com/c/IGElhf0qJUh

    et comme bcp de méfie des fichier verolés suffi de le passe à la moulinette ici
    https://www.virustotal.com/gui/home/upload

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    pas d'anti robot sur zethurf !!!!!!!!!!!!
    a ben ca lors première nouvelle même a l'époque de sebphyto il y en avait déjà

    je peux te confirmer qu'il y en a même plusieurs
    si tu téléchargeais les js et les regardais avec le bloknote tu comprendrais

    non,non,non,non, c'est pas la peine et heureusement d'ailleurs

    bref
    si tu arrive a Peter la protection
    un petit exemple je ne vais pas plus loin car c'est inutile
    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
    Sub test()
        Dim Url$, IE As Object, choix
        Dim tablcheval()
        Url = "https://www.zeturf.fr/fr/course/2019-07-31/R1C1-prix-du-parc-des-princes/turf"
        Set IE = CreateObject("internetexplorer.application")
        With IE
            .navigate Url
            Do: DoEvents: Loop While .readystate <> 4
            For Each Elem In .document.body.all
                If Elem.classname = "liste-pari" Then Set listp = Elem: Exit For
            Next
            Set boutp = listp.getelementsbytagname("button")
            For I = 0 To boutp.Length - 1
                texte = texte & "tapez: " & I & "  pour parier en " & Split(boutp(I).Title, ":")(0) & vbCrLf
            Next
            Cells(1).Activate
     
            choix = InputBox(texte, "choisir un type de pari")
            If choix <> "" Then
                boutp(CLng(choix)).Click
                If choix = 0 Then boutp(1).Click    'pour le doubleclick
            Else
                .Quit
                Exit Sub
            End If
            Set Table = .document.getelementbyid("DataTables_Table_0")
            texte = ""
            For Each Elem In Table.all
                If Elem.classname = "even" Or Elem.classname = "odd" Then
                    x = x + 1: texte = texte & "tapez " & x & " pour " & Elem.getelementsbytagname("H3")(0).innerhtml & vbCrLf
                    ReDim Preserve tablcheval(0 To x): Set tablcheval(x - 1) = Elem
                End If
            Next
            choix = InputBox(texte, "choisir un cheval")
            If choix = "" Then .Quit: Exit Sub
            .Visible = True
            With tablcheval(Val(choix) - 1).getelementsbytagname("button")(0)
                preuve = "avant click " & .outerhtml 'juste pour verifier
                .Focus: .Click
     
            preuve = preuve & vbCrLf & "apres click " & .outerhtml
            End With
        MsgBox preuve & vbCrLf & "apres le click il devrait etre de la classe ""selected"""
     
        End With
        Set IE = Nothing
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    pas mal ton truc mais tu te complique trop la vie enfin pour moi c'est trop long dans ce sens là un truc de ce genre plus rapide t'as deux clique direct rapide. Bon il faudrait une variable pour au lieu de mettre deux fois click mettre un clik avec x2 ou +1 ou je ne sais quoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set IEDoc = IE.document
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "chk-change-pari paris-arrondi_79x40_2" Then Exit For
        Next I
        Boutons(I).Click
        Boutons(I).Click

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    je l'ai fait comme ca mais effectivement tu peux simplifier si tu a déjà les données avant
    ma demo c'est juste pour te montrer que le bouton est bien determiné avec "preuve" mais qu'il n'est pas cliqué
    et ca tu n'y pourra absolument rien
    tu va pedaler dans le vide je peux te le garantir
    et pour info une protection (aucune d'ailleurs) ne peux protéger la page entière il y donc des parties manipulables

    mais la on est sur un site d'argent tu comprends bien qu'il faut que ca soit sécuritaire en amont et en aval

    je te le répète plus clairement "Abandonne cette idée" c'est pour ton bien
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Merci quand même c'est dommage ça m'aurais arrangé, avant il avait un site mobile ze et sont bcp plus simple a manipuler.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Oula attend Patrick tu t'es un peu trop vite sous estimé look moi ça en vidéo SG ou SP bon ça ne fonctionne pas mais zecouillon (trouver le 4ème de la course) ou zeshow (trouver le 2ème) cela fonctionne

    Sur zeturf le truc pour SG ou SP c'est qu'il faut cliquer deux fois SP pour avoir que SG c'est un peu n'importe quoi mais bon alors que le zeshow ou le zecouillon tu cliques une fois dessus et il est sélectionné, pourquoi cela fonctionnerais avec ZS et ZC mais pas SG ? lol le site est fait de la même manière partout.

    Sur la vidéo j'ai choisi course de demain R4C1

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    je ne me sous estime pas au contraire vba/html/xml c'est plutôt mon truc

    et oui en effet selon le type de pari choisi ca fonctionne

    il n'y a aucune raison que ca ne fonctionne pas avec le SP ou SG sauf protection

    ce qui prouve bien que comme je disais les protections ne sont pas efficaces a 100%

    ce qui rend le chose encore plus bancale
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Salut tous,

    Ce qui me turlupine dans ton code, c'est qu'il fonctionne avec quasi tous ce qui est encadré de rouge dans la photo mais pas en bleu. Je ne vois pas pour quelle raison ils iraient mettre des anti-robot pour empêcher de cliquer les cases a cocher après le SG ou le SP, ça n'a aucun sens encore pour empêcher d'importer des données ou se faire aspirer leur site OK. Et je pense que leur protection tel quelle soit est 100% efficace, c'est pas un coup je fonctionne un coup non tu imagines une protection bancal sur des sites de pognon, c'est impensable.

    Ensuite qu'on fasse cliquer un robot ou autre sur leur site pour cocher des cases ou des boutons ils s'en foute royale du moment que tu joues, par contre ce que je peu te dire, c'est qu'il ne veulent pas se faire aspirer leur site ou qu'on leur pique leur base de données, si tu te fais gauler gaffe a toi. Même si tu demande une autorisation c'est niet ils sont catégorique la dessus.



    De ce que j'ai compris tu passes par le id="DataTables_Table_0" ensuite par soit par la class="odd" ou la class="even" mais pourquoi ne pas faire différemment ?

    Comme je le disais si C3 = 1 de ma feuille alors on va chercher le numéro qui correspond, ici ça correspond au data-runner = 1 mais pas seulement dans chaque data-runner ou odd ou even comme tu veux tu as a chaque fois un class = selection pour tous ce qui est encadré de rouge et de bleu de la photo n°1 un class = gagnant et place. Le Gagnant c'est le seul qui m'interesse mais si l'un fonctionne l'autre aussi.


  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Bonjour forum,

    Maintenant qu'on sait que tous les paris sont cliquable sauf SG ou SP apparemment.

    Imaginons que je veuille jouer dans ce cas a zeshow (ZS) le code donnerais ça, si je veux cliquer sur le bouton 1 du premier cheval, ça donnerais quoi ? Evidemment sans des messages box etc etc un truc simple. Merci de votre réponse. Ou merci a patricktoulon s'il veut bien simplifier son code au plus simple.

    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 Bet_Zeturf()
        Dim IE As Object, IEDoc As Object
        Dim Boutons As Object
        Dim I As Integer, Url As String
     
        Url = "https://www.zeturf.fr/fr/course/2019-08-08/R5C8-vichy-soir-prix-europa-bar-bellenaves-prix-de-jaligny/turf"
     
        Set IE = CreateObject("InternetExplorer.Application")
     
        IE.Visible = True
        IE.Navigate Url
        Do Until IE.ReadyState = 4
            DoEvents
        Loop
     
        Set IEDoc = IE.document
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "chk-change-pari paris-arrondi_79x40_29" Then Exit For
        Next I
        Boutons(I).Click
     
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''' CODE manquant
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
     
     
       'IE.Quit
     
        Set Boutons = Nothing
        Set IEDoc = Nothing
        Set IE = Nothing
     
    End Sub

  14. #14
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Es-tu conscient que si demain, ils changent une virgule dans la conception de la page html, le DOM va changer et que tu devras adapter ton code? Pourquoi veux-tu placer tes paris en VBA? Pour en placer plusieurs "en rafale"?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.

    Es-tu conscient que si demain, ils changent une virgule dans la conception de la page html, le DOM va changer et que tu devras adapter ton code? Pourquoi veux-tu placer tes paris en VBA? Pour en placer plusieurs "en rafale"?
    Oui si la page web change je m'adapterais ce n'est pas grave, je joue manuellement donc pas le choix pour l'instant, je fais ça pour pariez rapidement sans me planter (ça m'est déjà arrivé dans la précipitation). Pas forcement en rafale. Car je joue en fonction d'un fichier excel et donc si je dois rapidement jouer le 1 par exemple ou un autre numéro et qu'il me reste 3 secondes pour jouer avant le départ la macro sera toujours plus rapide que moi le pmu est un peu différent du loto foot ou du loto les mises sont plus engagées a 10 minutes du départ que 1 heure avant.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Je savais qu'il y avait un truc qui cloche dans le code Mr patricktoulon ça me paraissais louche un anti robot qui empêche de cliquer alors qu'il clique tous les autres boutons.

    Voici le code que tu m'as donné d'origine en faite si tu ne choisi pas le bon children c'est sur il va prendre le premier bouton qu'il trouve soit dans la class= selection qui correspond a tous les paris sauf le children 1 qui correspond a gagnant et le children 2 a place. Cela fait des jours que je cherche le truc.

    Voici le code du coup bah il clique sur le SG et coche la case SG et quand j'ai vu que ça a fonctionné j'ai faillie faire une attaque
    Fallait juste changer le children de 0 a 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With tablcheval(Val(choix) - 1).getelementsbytagname("button")(1)
    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
    Sub test()
        Dim Url$, IE As Object, choix
        Dim tablcheval()
        Url = "https://www.zeturf.fr/fr/course/2019-08-10/R5C6-cagnes-sur-mer-prix-des-impatiens/turf"
        Set IE = CreateObject("internetexplorer.application")
        With IE
            .navigate Url
            Do: DoEvents: Loop While .readystate <> 4
            For Each Elem In .document.body.all
                If Elem.classname = "liste-pari" Then Set listp = Elem: Exit For
            Next
            Set boutp = listp.getelementsbytagname("button")
            For I = 0 To boutp.Length - 1
                texte = texte & "tapez: " & I & "  pour parier en " & Split(boutp(I).Title, ":")(0) & vbCrLf
            Next
            Cells(1).Activate
     
            choix = InputBox(texte, "choisir un type de pari")
            If choix <> "" Then
                boutp(CLng(choix)).Click
                If choix = 0 Then boutp(1).Click    'pour le doubleclick
            Else
                .Quit
                Exit Sub
            End If
            Set Table = .document.getelementbyid("DataTables_Table_0")
            texte = ""
            For Each Elem In Table.all
                If Elem.classname = "even" Or Elem.classname = "odd" Then
                    x = x + 1: texte = texte & "tapez " & x & " pour " & Elem.getelementsbytagname("H3")(0).innerhtml & vbCrLf
                    ReDim Preserve tablcheval(0 To x): Set tablcheval(x - 1) = Elem
                End If
            Next
            choix = InputBox(texte, "choisir un cheval")
            If choix = "" Then .Quit: Exit Sub
            .Visible = True
            With tablcheval(Val(choix) - 1).getelementsbytagname("button")(1)
                preuve = "avant click " & .outerhtml 'juste pour verifier
                .Focus: .Click
     
            preuve = preuve & vbCrLf & "apres click " & .outerhtml
            End With
        MsgBox preuve & vbCrLf & "apres le click il devrait etre de la classe ""selected"""
     
        End With
        Set IE = Nothing
    End Sub
    Donc maintenant qu'on sait que rien n'empêche de cliquer sur les boutons je voudrais épurer ce code, supprimer toutes ces MsgBox etc ne garder que le principal en choisissant le cheval numéro 7 par exemple sans les autres. Cela sera déjà bien

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    forum,

    J'ai eu une illumination, ça vaut ce que ça vaut mais ça fait le taf LOCO. FUCK LES ANTI ROBOTS dixit mr patricktoulon va me détester

    Voici le code j'aurais préférer par les noms d'id ou de class mais bon. le children (4) ça coche le 5 SG , children (0) le 1, et ainsi de suite je mettrais une macro pour chaque cheval.
    Ensuite il y aurait deux bricoles a peu être modifier, dans un premier temps les clicks si je veux miser 100€ je ne vais pas mettre 99 "Boutons(I).Click" a voir pour une variable.
    Et 2ème chose la mise, y a t'il un moyen de changer la valeur dans la pseudo textbox, les deux vont de paire de toute manière.

    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
    Option Explicit
     
    #If VBA7 And Win64 Then
        Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #Else
        Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #End If
     
    Sub Mise_Zeturf()
        Dim IE As Object, IEDoc As Object
        Dim Boutons As Object, Tables As Object
        Dim I As Integer, J As Integer, Url As String
        Dim LaDate As String, LaReunion As String, LaCourse As String, LePrix As String
        Dim GenericElem As HTMLGenericElement
     
     
     
        Url = "https://www.zeturf.fr/fr/course/2019-08-13/R5C7-cabourg-prix-des-godeties/turf"
     
        Set IE = CreateObject("InternetExplorer.Application")
     
        IE.Visible = True
        IE.Navigate Url
        Do Until IE.ReadyState = 4
            DoEvents
        Loop
     
        Set IEDoc = IE.document
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "chk-change-pari paris-arrondi_79x40_2" Then Exit For
        Next I
        Boutons(I).Click
     
     
     
     
        Set GenericElem = IEDoc.all("DataTables_Table_0").Children(1).Children(4).Children(16).Children(0)
        GenericElem.Click
     
     
     
     
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "montant-plus " Then Exit For
        Next I
        Boutons(I).Click
        Boutons(I).Click
        Boutons(I).Click ' <<< 3 click = 4€
     
    'IE.Quit
        Set Tables = Nothing
        Set Boutons = Nothing
        Set IEDoc = Nothing
        Set IE = Nothing
     
    End Sub

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    J'avance a petit pas, j'ai remplacé le bouton "montant-plus" pour changer directement la valeur dans le champs texte de type input seulement il n'a pas le onchange et donc il se trouve dans un js, doit y avoir un soucis au niveau du nom de la fonction du js permettant le onchange. On voit bien la valeur changer dans la texte box mais quand on regarde juste en bas la somme on voit bien que c'est pas bon. Ensuite il y a la solution un coup de bouton plus et moins et ça le fait mais c'est moins esthétique lol

    Voici le morceau de code a remplacer dans celui du haut. Et j'aimerais savoir comment remplacer la valeur de 2 en désignant une cellule d'une feuil1 par exemple A3= 2 donc Value = "2" que je puisse changer la valeur sur la cellule et non pas dans le code. Merci de vôtre aide. Je préfère le plan A

    PLAN A non fonctionnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim inputfield As Object
     
     Set inputfield = IE.document.getElementsByClassName("montant")
        If inputfield.Length > 0 Then
        inputfield(0).Value = "2"
       End If
    IEDoc.parentWindow.Window.execScript "combinaison('" & inputfield.Value & "');"   '<<<< ça coince ici
    PLAN B fonctionnel
    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
    Dim inputfield As Object
    Set inputfield = IE.document.getElementsByClassName("montant")
        If inputfield.Length > 0 Then
        inputfield(0).Value = "2"
        End If
     
     
     
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "montant-plus " Then Exit For
        Next I
        Boutons(I).Click
     
        Set Boutons = IEDoc.getElementsByTagName("button")
        For I = 0 To Boutons.Length - 1
            If Boutons(I).classname = "montant-moins " Then Exit For
        Next I
        Boutons(I).Click

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 10
    Points
    10
    Par défaut
    Je vais clore le sujet, mon fichier fonctionne, il n'est pas parfait, il me manque toujours ceci, j'ai essayé plein de variante avec des noms dans le js du site. Donc obligé de prendre le plan B. Dans le futur si quelqu'un à la soluce.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IEDoc.parentWindow.Window.execScript "combinaison('" & inputfield.Value & "');" 
    IEDoc.parentWindow.Window.execScript "combinaison('" & inputfield.Value & "');""script"
    IEDoc.parentWindow.Window.execScript "keyup('" & inputfield.Value & "');"   
    InputElem.FireEvent "keyup"
    InputElem.FireEvent "keyup change"
    J'ai réussi a mettre ma variable avec ceci. Comme dans la cellule O1 de feuille Reunion 1 je met la somme que je veux jouer.
    Et j'aimerais savoir comment remplacer la valeur de 2 en désignant une cellule d'une feuil1 par exemple A3= 2 donc Value = "2" que je puisse changer la valeur sur la cellule et non pas dans le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim lamise As String
    If Sheets("Reunion 1").Range("O1") Then
        lamise = Sheets("Reunion 1").Range("O1")
     
        Set inputfield = IE.document.getElementsByClassName("montant")
        If inputfield.Length > 0 Then
        inputfield(0).Value = lamise
        End If
    Et aussi ceci car sur une course de plat ou de trot, il y a une colonne de différence donc le children 3 lui .Children(16) peu varier de 1 d'ou la nécessité de le trouvé par sa class name qui correspond a "gagnant" sur le site.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set GenericElem = IEDoc.all("DataTables_Table_0").Children(1).Children(4).Children(16).Children(0)
        GenericElem.Click
    Et surtout n'oubliez jamais mais alors jamais d'avoir LA GROSSE PATATE.

    Et je met mon fichier excel qui DÉCHIRE TOUT pour gagner des milliers d'euro au pmu LOCO.
    Fichiers attachés Fichiers attachés

  20. #20
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par muratime Voir le message
    Je vais clore le sujet, mon fichier fonctionne, il n'est pas parfait, il me manque toujours ceci, j'ai essayé plein de variante avec des noms dans le js du site. Donc obligé de prendre le plan B. Dans le futur si quelqu'un à la soluce.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IEDoc.parentWindow.Window.execScript "combinaison('" & inputfield.Value & "');" 
    IEDoc.parentWindow.Window.execScript "combinaison('" & inputfield.Value & "');""script"
    IEDoc.parentWindow.Window.execScript "keyup('" & inputfield.Value & "');"   
    InputElem.FireEvent "keyup"
    InputElem.FireEvent "keyup change"
    J'ai réussi a mettre ma variable avec ceci. Comme dans la cellule O1 de feuille Reunion 1 je met la somme que je veux jouer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim lamise As String
    If Sheets("Reunion 1").Range("O1") Then
        lamise = Sheets("Reunion 1").Range("O1")
     
        Set inputfield = IE.document.getElementsByClassName("montant")
        If inputfield.Length > 0 Then
        inputfield(0).Value = lamise
        End If
    Et aussi ceci car sur une course de plat ou de trot, il y a une colonne de différence donc le children 3 lui .Children(16) peu varier de 1 d'ou la nécessité de le trouvé par sa class name qui correspond a "gagnant" sur le site.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set GenericElem = IEDoc.all("DataTables_Table_0").Children(1).Children(4).Children(16).Children(0)
        GenericElem.Click
    Et surtout n'oubliez jamais mais alors jamais d'avoir LA GROSSE PATATE.

    Et je met mon fichier excel qui DÉCHIRE TOUT pour gagner des milliers d'euro au pmu LOCO.

    Bonsoir
    est-il possible d'avoir le mot de passe de ton fichier please ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/07/2017, 09h26
  2. [XL-2016] Interaction avec Internet Explorer avec VBA Excel
    Par papilou86 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/02/2017, 11h12
  3. Interaction avec Internet Explorer via VBA Excel
    Par hamdy06 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/05/2016, 16h32
  4. Réponses: 1
    Dernier message: 22/02/2016, 17h55
  5. [W3C] pb avec Internet Explorer
    Par magic8392 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/03/2005, 15h02

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