Récupération de données du site PMU

Messages postés
96
Date d'inscription
lundi 12 décembre 2011
Statut
Membre
Dernière intervention
5 juin 2019
-
Bonjour,
Depuis plusieurs années, je récupère automatiquement les résultats du PMU via une macro Excel en passant par mon navigateur IE11.
Ce programme ouvre chaque course l'une après l'autre, en ouvrant pour chacune le "Tableau des partants" puis les "rapports probables" et enfin "Afficher tous les rapports".
Un internaute génial et très sympathique (j'ai oublié son pseudo et m'en excuse auprès de lui) m'avait écrit un programme pour Excel (ci-après la copie).
Aujourd'hui, je voudrais changer de navigateur, Microsoft Edge ou Google Chrome (au choix de celui qui voudra bien m'aider) , donc réécrire un programme adapté… ce dont je suis incapable.

D'avance je vous remercie de toute aide.

**Modifié par la modération pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE
Sub TousLesRapports()
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim coll_Li As IHTMLElementCollection
Dim Li As HTMLGenericElement

'ouverture de la page Internet Explorer
IE.navigate "https://www.pmu.fr/turf/index.html#19032015/R1/C3"
IE.Visible = True
'attente du chargement complet de la page IE
WaitIE IE
Application.Wait Time + TimeSerial(0, 0, 2)
'on cible le document de cette page
Set IEDoc = IE.document
'attente du chargement complet de l'élément Document de la page IE
WaitDoc IEDoc
Application.Wait Time + TimeSerial(0, 0, 2)
'on créé notre collection contenant toutes les balises <li>
Set coll_Li = IEDoc.getElementsByTagName("li")
'on boucle sur toutes les balises <li> de notre collection
For Each Li In coll_Li
    'Si la className de la balise <li> est "actionbar-item js-all-report-button"
    If Li.className = "pari-list-item pari-list-item--all js-all-report-button" Then
        'on clique
        Li.Click
        'on quitte
        Exit For
    End If
Next
End Sub
------------------------------------------------------------------------------------------------------
Sub WaitIE(IE As InternetExplorer)
'attente du chargement complet de la page IE
   Do Until IE.ReadyState = READYSTATE_COMPLETE
      DoEvents
   Loop
End Sub
---------------------------------------------------------------------------------------------------
Sub WaitDoc(doc As HTMLDocument)
'attente du chargement complet de l'élément Document
  Do While Not doc.ReadyState = "complete"
    DoEvents
  Loop
End Sub
--------------------------------------------------------------------------------------------------
Sub TousLesRapports02()
'
' TousLesRapports02 Macro
'

'
    Sheets("01 (2)").Select
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim coll_Li As IHTMLElementCollection
Dim Li As HTMLGenericElement

'ouverture de la page Internet Explorer
IE.navigate "" & [AM13].Value
IE.Visible = True
'attente du chargement complet de la page IE
WaitIE IE
Application.Wait Time + TimeSerial(0, 0, 2)
'on cible le document de cette page
Set IEDoc = IE.document
'attente du chargement complet de l'élément Document de la page IE
WaitDoc IEDoc
Application.Wait Time + TimeSerial(0, 0, 2)

'on créé notre collection contenant toutes les balises <li>
Set coll_Li = IEDoc.getElementsByTagName("li")
'on boucle sur toutes les balises <li> de notre collection
For Each Li In coll_Li
    'Si la className de la balise <li> est "actionbar-item js-all-report-button"
    If Li.className = "partants actif visible" Then
        'on clique
        Li.Click
        'on quitte
        Exit For
    End If
Next

'on créé notre collection contenant toutes les balises <li>
Set coll_i = IEDoc.getElementsByTagName("i")
'on boucle sur toutes les balises <li> de notre collection
For Each i In coll_i
    'Si la className de la balise <li> est "actionbar-item js-all-report-button"
    If i.className = "icon icon-rapports-probables" Then
        'on clique
        i.Click
        'on quitte
        Exit For
    End If
Next

'on créé notre collection contenant toutes les balises <li>
Set coll_Li = IEDoc.getElementsByTagName("li")
'on boucle sur toutes les balises <li> de notre collection
For Each Li In coll_Li
    'Si la className de la balise <li> est "actionbar-item js-all-report-button"
    If Li.className = "pari-list-item pari-list-item--all js-all-report-button" Then
        'on clique
        Li.Click
        'on quitte
        Exit For
    End If
Next

Set IE = Nothing
Application.Wait Time + TimeSerial(0, 0, 3)
Application.SendKeys "^a"
    Application.Wait Now + TimeValue("00:00:01")
    Application.SendKeys "^c"
    Application.Wait Now + TimeValue("00:00:01")
    Application.SendKeys "^w"
    Windows("Récup Web.xlsm").Activate
    Sheets("01 (2)").Select
    Range("" & [AM12].Value).Select
    ActiveSheet.Paste
End Sub
Afficher la suite 

3 réponses

Messages postés
96
Date d'inscription
lundi 12 décembre 2011
Statut
Membre
Dernière intervention
5 juin 2019
3
0
Merci
Merci à la modération, notamment à bazfile, pour avoir rendu la lecture plus facile du code… Bonne journée à tous
Commenter la réponse de dadacourse
Messages postés
96
Date d'inscription
lundi 12 décembre 2011
Statut
Membre
Dernière intervention
5 juin 2019
3
0
Merci
Bonjour à tous,
7 jours déjà que ma demande d'aide pour un changement de navigateur est "postée" et toujours aucune réponse…. AU SECOURS !!
Par avance un grand merci
Commenter la réponse de dadacourse
Messages postés
6286
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 octobre 2019
400
0
Merci
Bonjour,

Un internaute génial et très sympathique (j'ai oublié son pseudo et m'en excuse auprès de lui) m'avait écrit un programme pour Excel (ci-après la copie).

voilà ton internaute génial et très sympathique , tu peux peut-être le contacter sur MP

https://www.commentcamarche.net/forum/affich-31328488-vba-excel-clic-sur-bouton-page-internet-explorer


pour retrouver tous tes post, cliques sur la date en haut à gauche sous le titre à droite de datacourse

dadacourse
Messages postés
96
Date d'inscription
lundi 12 décembre 2011
Statut
Membre
Dernière intervention
5 juin 2019
3 -
Merci… J'ai retrouvé son pseudo : PIJAKU
Commenter la réponse de cs_Le Pivert