Ouvrir sous-écran sur web

Résolu
dadacourse Messages postés 143 Statut Membre -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Sur un site web, ouvrir automatiquement par une macro Excel un "sous-écran" (qui s'ouvre manuellement en cliquant sur un bouton).
Exemple sur le site du PMU Paris Hippiques: après avoir ouvert automatiquement une course d'un jour précédent (jusque là j'y arrive), je voudrais ouvrir automatiquement par une macro le tableau "Rapports probables" (qui ne s'ouvre que si je clique sur le bouton "Rapports probables")
Merci par avance de votre aide
Bonne journée !!
(Windows 8.1 IE11 Excel2007)

Précision: je ne veux rien récupérer sur ce tableau "Rapports probables",... juste le faire apparaître automatiquement à l'écran.

Merci de votre solution (ci-possible le script).. et si pas possible, merci de me le dire

6 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    Bonjour,

    Pour nous permettre de vous aider dans le développement de votre macro, il nous faudrait déjà savoir comment vous ouvrez cette page Internet. Merci de nous donner des détails (Userform? Webbrowser?) ainsi que le code correspondant...
    0
  2. dadacourse Messages postés 143 Statut Membre 3
     
    Bonjour Franck,
    Merci de votre rapide réponse et de votre intérêt à mon problème...
    Je suis loin d'être un connaisseur, mais voici la macro (Excel 2007) qui ouvre à l'écran
    une course du PMU (depuis IE11)
    En A1, l'URL de la course, par exemple :
    https://www.pmu.fr/turf/index.html#03012015/R1/C1

    Sheets("01").Select
        ActiveWorkbook.FollowHyperlink Address:="" & [A1].Value
        Application.Wait Now + TimeValue("00:00:03")
        Application.SendKeys "^a"
        Application.Wait Now + TimeValue("00:00:01")
        Application.SendKeys "^c"
        Windows("Récup Web.xlsm").Activate
        Sheets("01").Select
        Range("AA1").Select
        ActiveSheet.Paste


    Ensuite, je voudrais simplement ouvrir à l'écran le tableau des « Rapports probables » de cette course R1/C1.
    (Je copierai l'écran de la même façon que précédemment pour le coller en BB1)
    J'espère ces informations utiles pour vous
    Merci encore et bonne journée !!
    Jean-Luc
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Ce n'est malheureusement pas si simple.
      Le "bouton" en question n'est ni un lien, ni un bouton... Il s'agit d'un élément <li> faisant apparaitre, au clic, une <div> contenant une <table>. C'est le contenu de cette table qu'il te faudrait récupérer. Dans l'état des choses, je ne vois malheureusement pas comment...
      0
  3. dadacourse Messages postés 143 Statut Membre 3
     
    Tant pis et dommage, j'avais espéré...
    Si une solution se présentait pour récupérer cette fameuse table, peut-être auprès de tes "amis", je serais bien sûr preneur
    Bonne journée... et Bonne année 2015 !!!
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Je n'ai pas dit que c'était impossible...
      J'ai juste dit que "dans l'état des choses (autrement dit comment ta macro se présentait), ce n'est pas si simple".
      Regarde ce que fait ce code, chez toi :

      Option Explicit
      'sources :
      'http://qwazerty.developpez.com/tutoriels/vba/ie-et-vba-excel/
      
      Sub DadaCourse()
      Dim IE As New InternetExplorer
      Dim IEDoc As HTMLDocument
      Dim DivParent As HTMLSelectElement
      Dim Enfants As HTMLSelectElement
      Dim Petits_Enfants As HTMLSelectElement
      Dim Flag As Boolean
      
      IE.Navigate "https://www.pmu.fr/turf/index.html#03012015/R1/C1"
      IE.Visible = True
      WaitIE IE
      Set IEDoc = IE.document
      Set DivParent = IEDoc.getElementById("course-info-plus")
      For Each Enfants In DivParent.Children
          For Each Petits_Enfants In Enfants.Children
              If Petits_Enfants.innerText = "Rapports probables" Then Petits_Enfants.Click: Flag = True: Exit For
          Next
          If Flag Then Exit For
      Next
      Set IE = Nothing
      End Sub
      
      Sub WaitIE(IE As InternetExplorer)
         Do Until IE.ReadyState = READYSTATE_COMPLETE
            DoEvents
         Loop
      End Sub
      
      
      0
  4. dadacourse Messages postés 143 Statut Membre 3
     
    Sub essai01()
    '
    ' essai01 Macro
    '
    
    '
    Option Explicit
    'sources :
    'http://qwazerty.developpez.com/tutoriels/vba/ie-et-vba-excel/
    
    Sub DadaCourse()
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim DivParent As HTMLSelectElement
    Dim Enfants As HTMLSelectElement
    Dim Petits_Enfants As HTMLSelectElement
    Dim Flag As Boolean
    
    IE.Navigate "https://www.pmu.fr/turf/index.html#03012015/R1/C1"
    IE.Visible = True
    WaitIE IE
    Set IEDoc = IE.document
    Set DivParent = IEDoc.getElementById("course-info-plus")
    For Each Enfants In DivParent.Children
        For Each Petits_Enfants In Enfants.Children
            If Petits_Enfants.innerText = "Rapports probables" Then Petits_Enfants.Click: Flag = True: Exit For
        Next
        If Flag Then Exit For
    Next
    Set IE = Nothing
    End Sub
    
    Sub WaitIE(IE As InternetExplorer)
       Do Until IE.ReadyState = READYSTATE_COMPLETE
          DoEvents
       Loop
    End Sub


    la ligne 27 est surligné et une fenêtre indique:
    Erreur de compilation
    Type défini par l'utilisateur non défini
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Oui, il faut activer deux références : « Microsoft Internet Controls » et « Microsoft HTML Object Library ». Pour accéder aux références dans VBA, menu Outils -> Références, puis cocher les cases correspondantes à ces deux références.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dadacourse Messages postés 143 Statut Membre 3
     
    Après activation des 2 référence...
    la ligne 18 est surligné et une fenêtre indique:
    Erreur d'exécution '91':
    Variable objet ou variable de bloc With non définie
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Ah oui.
      C'est dû à certaines "lenteurs" de chargement de la page. J'ai résolu cela en ajoutant une "tempo" de 2 secondes après la ligne Set IEDoc = IE.Document :
      Application.Wait Time + TimeSerial(0, 0, 2)

      Tu trouveras : ci-joint mon fichier test
      0
  7. dadacourse Messages postés 143 Statut Membre 3
     
    Carrément génial, ça marche très bien !!!

    Un grand merci Franck pour ton travail et le temps que tu y as consacré !

    Je te souhaite une excellente année 2015, à toi et tes proches
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Merci. A toi également.
      A+
      0