VBA Excel - Clic sur bouton page Internet Explorer
Résolu/Fermé
dadacourse
eric - 17 nov. 2015 à 10:42
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
eric - 17 nov. 2015 à 10:42
A voir également:
- VBA Excel - Clic sur bouton page Internet Explorer
- VBA Excel - Clic sur bouton page Internet Explorer ✓ - Forum - VB / VBA
- Impossible d'afficher la page internet explorer windows xp ✓ - Forum - Réseau
- IE - Impossible d'afficher la page - Conseils pratiques - Internet Explorer
- Page internet explorer qui s'ouvre toute seul au démarage ✓ - Forum - Virus / Sécurité
- Conserver une vidéo d'une page internet explorer ✓ - Forum - Internet Explorer
7 réponses
pijaku
Modifié par pijaku le 6/01/2015 à 07:47
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
Modifié par pijaku le 6/01/2015 à 07:47
Bonjour,
1- Lorsque tu places du code sur notre forum, merci d'utiliser les balises code à ta disposition.
Le mode d'emploi (au cas ou) est ICI.
2- Le titre est bien mieux comme cela. Non?
3- je vais regarder, analyser la page Internet Explorer et revenir te dire si possible ou non.
En attendant, je te recommande néanmoins la lecture de ce tutoriel : https://qwazerty.developpez.com/tutoriels/vba/ie-et-vba-excel/
@+
🎼 Cordialement,
Franck 🎶
1- Lorsque tu places du code sur notre forum, merci d'utiliser les balises code à ta disposition.
Le mode d'emploi (au cas ou) est ICI.
2- Le titre est bien mieux comme cela. Non?
3- je vais regarder, analyser la page Internet Explorer et revenir te dire si possible ou non.
En attendant, je te recommande néanmoins la lecture de ce tutoriel : https://qwazerty.developpez.com/tutoriels/vba/ie-et-vba-excel/
@+
🎼 Cordialement,
Franck 🎶
pijaku
6 janv. 2015 à 08:03
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
6 janv. 2015 à 08:03
je vais regarder, analyser la page Internet Explorer et revenir te dire si possible ou non.
ça a été plus rapide que prévu car très simple cette fois...
Que nous apprends l'analyse du code source de la page, et, plus précisément de l'élément concerné?
Tout simplement qu'il s'agit d'un lien (balise <a></a>) écrit avec cette syntaxe :
Il nous faut donc, pour pouvoir cliquer sur ce lien :
1- Pointer le membre Document (cf tuto précédemment cité) => obligatoire car on vient de changer la page IE suite au clic généré par le code précédent)
2- boucler sur toutes les balises de cette page
3- stocker dans une collection les balises <a>
4- boucler sur cette collection de balises
5- si le texte du lien est : Simple placé, alors on clique et on sort de la boucle.
Ce qui s'écrit, en VBA :
Code à ajouter en fin de macro précédente, comme ceci :
NOTA (très important) : Lorsque je place un lien vers une source, dans le code, sous la forme d'un commentaire, il convient de le laisser chez toi dans la macro de manière identique. Cela permet de reconnaitre le bon travail d'un bénévole sur Internet...
ça a été plus rapide que prévu car très simple cette fois...
Que nous apprends l'analyse du code source de la page, et, plus précisément de l'élément concerné?
Tout simplement qu'il s'agit d'un lien (balise <a></a>) écrit avec cette syntaxe :
<a class="btn" data-type-pari="SIMPLE_PLACE" href="#">Simple Placé</a>
Il nous faut donc, pour pouvoir cliquer sur ce lien :
1- Pointer le membre Document (cf tuto précédemment cité) => obligatoire car on vient de changer la page IE suite au clic généré par le code précédent)
2- boucler sur toutes les balises de cette page
3- stocker dans une collection les balises <a>
4- boucler sur cette collection de balises
5- si le texte du lien est : Simple placé, alors on clique et on sort de la boucle.
Ce qui s'écrit, en VBA :
Set IEDoc = IE.document Set Coll_Liens = IEDoc.getElementsByTagName("a") For Each Lien In Coll_Liens If Lien.innerText = "Simple Placé" Then Lien.Click: Exit For Next
Code à ajouter en fin de macro précédente, comme ceci :
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 Dim Coll_Liens As IHTMLElementCollection Dim Lien As HTMLGenericElement IE.navigate "https://www.pmu.fr/turf/index.html#03012015/R1/C1" IE.Visible = True WaitIE IE Set IEDoc = IE.document Application.Wait Time + TimeSerial(0, 0, 2) 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 IEDoc = IE.document Set Coll_Liens = IEDoc.getElementsByTagName("a") For Each Lien In Coll_Liens If Lien.innerText = "Simple Placé" Then Lien.Click: Exit For Next Set IE = Nothing End Sub Sub WaitIE(IE As InternetExplorer) Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop End Sub
NOTA (très important) : Lorsque je place un lien vers une source, dans le code, sous la forme d'un commentaire, il convient de le laisser chez toi dans la macro de manière identique. Cela permet de reconnaitre le bon travail d'un bénévole sur Internet...
dadacourse
6 janv. 2015 à 08:04
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
6 janv. 2015 à 08:04
ok, je m'y emploie !!
dadacourse
7 janv. 2015 à 07:27
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
7 janv. 2015 à 07:27
Salut Franck,
Absent quelques jours, je m'en occupe dés mon retour et je te tiendrais informé.
Encore un grand grand merci !!
Bonne journée
Jean-Luc
Absent quelques jours, je m'en occupe dés mon retour et je te tiendrais informé.
Encore un grand grand merci !!
Bonne journée
Jean-Luc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dadacourse
8 janv. 2015 à 06:16
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
8 janv. 2015 à 06:16
Bonjour Franck,
3 mots à te dire: SUPER,... GRAND MERCI !!!
Ca fonctionne très bien (et je tiens compte de ton Nota)
Vive le très bon travail d'un très bon et disponible bénévole.
Plein de bonnes choses pour toi.
Jean-Luc
3 mots à te dire: SUPER,... GRAND MERCI !!!
Ca fonctionne très bien (et je tiens compte de ton Nota)
Vive le très bon travail d'un très bon et disponible bénévole.
Plein de bonnes choses pour toi.
Jean-Luc
dadacourse
25 févr. 2015 à 07:35
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
25 févr. 2015 à 07:35
Bonjour Franck,
Tous les jours je récupère des informations du site du PMU grâce au "code" que tu m'as fourni en tout début janvier... et cela fonctionne merveilleusement bien (je t'en remercie encore).
Aujourd'hui, je voudrais une information de plus sur ce site: "Tous les rapports". Après plusieurs heures de tâtonnement, je n'ai toujours pas trouvé le bon "code", aussi je m'en remets encore une fois à toi.
Une fois le site du PMU ouvert sur la bonne course, je voudrais simplement ouvrir à l'écran le tableau "Tous les rapports" (à l'écran, bouton du côté gauche sous ou à la suite des boutons colorés des différents paris).
Par avance un grand merci !!
Ci-après, le code utilisé (et fourni par toi) pour ouvrir la page initiale du PMU.
En A1, l'URL de la course, par exemple :
https://www.pmu.fr/turf/index.html#24022015/R1/C2
(Je ne suis pas sûr de ma manipulation pour les CS, toutes mes excuses si c'est faux)
Tous les jours je récupère des informations du site du PMU grâce au "code" que tu m'as fourni en tout début janvier... et cela fonctionne merveilleusement bien (je t'en remercie encore).
Aujourd'hui, je voudrais une information de plus sur ce site: "Tous les rapports". Après plusieurs heures de tâtonnement, je n'ai toujours pas trouvé le bon "code", aussi je m'en remets encore une fois à toi.
Une fois le site du PMU ouvert sur la bonne course, je voudrais simplement ouvrir à l'écran le tableau "Tous les rapports" (à l'écran, bouton du côté gauche sous ou à la suite des boutons colorés des différents paris).
Par avance un grand merci !!
Ci-après, le code utilisé (et fourni par toi) pour ouvrir la page initiale du PMU.
En A1, l'URL de la course, par exemple :
https://www.pmu.fr/turf/index.html#24022015/R1/C2
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 Dim Coll_Liens As IHTMLElementCollection Dim Lien As HTMLGenericElement IE.navigate "" & [A1].Value IE.Visible = True Application.Wait Time + TimeSerial(0, 0, 2) Set IEDoc = IE.document Application.Wait Time + TimeSerial(0, 0, 1)
(Je ne suis pas sûr de ma manipulation pour les CS, toutes mes excuses si c'est faux)
pijaku
16 mars 2015 à 08:01
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
16 mars 2015 à 08:01
Salut,
Désolé, je t'ai oublié.
Le temps de me refaire un petit fichier exemple et je suis à toi...
Désolé, je t'ai oublié.
Le temps de me refaire un petit fichier exemple et je suis à toi...
pijaku
16 mars 2015 à 08:35
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
16 mars 2015 à 08:35
Bon...
Je vais donc te réexpliquer.
Lorsque tu cherches à cliquer sur un élément d'une page IE, il te faut cibler cet élément.
Pour cela, tu analyses le code source de ta page html.
Cette analyse nous donne l'élément :
Nous devons donc, dans la page html, ou, plus exactement dans l'élément document de cette page, trouver toutes les balises <li>. Une fois toutes les balises stockées (dans une collection), il nous suffira de boucler sur toutes et de trouver celle qui a pour className "actionbar-item js-all-report-button". Une fois celle-ci trouvée, on clic dessus...
Voici donc ton code :
Je vais donc te réexpliquer.
Lorsque tu cherches à cliquer sur un élément d'une page IE, il te faut cibler cet élément.
Pour cela, tu analyses le code source de ta page html.
Cette analyse nous donne l'élément :
<li class="actionbar-item js-all-report-button"> Tous les rapports </li>
Nous devons donc, dans la page html, ou, plus exactement dans l'élément document de cette page, trouver toutes les balises <li>. Une fois toutes les balises stockées (dans une collection), il nous suffira de boucler sur toutes et de trouver celle qui a pour className "actionbar-item js-all-report-button". Une fois celle-ci trouvée, on clic dessus...
Voici donc ton code :
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#24022015/R1/C2" IE.Visible = True 'attente du chargement complet de la page IE WaitIE IE '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 '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 = "actionbar-item js-all-report-button" Then 'on clique Li.Click 'on quitte Exit For Ned 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
dadacourse
20 mars 2015 à 05:57
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
20 mars 2015 à 05:57
Bonjour Franck
Navré de répondre si tard mais impossible pour moi de m'y atteler avant ce matin... J'ai bien recopié le code,... la page de la course s'ouvre bien mais aucun clic sur le bouton "Tous les rapports",... ?
Merci de ton temps passé sur mon souhait
Navré de répondre si tard mais impossible pour moi de m'y atteler avant ce matin... J'ai bien recopié le code,... la page de la course s'ouvre bien mais aucun clic sur le bouton "Tous les rapports",... ?
Merci de ton temps passé sur mon souhait
pijaku
20 mars 2015 à 07:48
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
20 mars 2015 à 07:48
Bonjour,
Je viens de réessayer.
Tout fonctionne pour moi.
Je viens de réessayer.
Tout fonctionne pour moi.
dadacourse
20 mars 2015 à 09:06
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
20 mars 2015 à 09:06
J'ai recommencé et "rien à faire", la course s'ouvre bien mais pas le tableau "Tous les rapports"
dadacourse
16 mars 2015 à 17:48
- Messages postés
- 124
- Date d'inscription
- lundi 12 décembre 2011
- Statut
- Membre
- Dernière intervention
- 3 octobre 2021
16 mars 2015 à 17:48
Bonsoir Franck
Je viens tout juste de découvrir ta réponse. Dés demain matin je m'y attelle et te tiens au courant.
Grand merci et bonne soirée !!
Je viens tout juste de découvrir ta réponse. Dés demain matin je m'y attelle et te tiens au courant.
Grand merci et bonne soirée !!