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

VBA Discussion :

IE - Lister toutes les pages trouvées - Boucle complémentaire


Sujet :

VBA

  1. #1
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut IE - Lister toutes les pages trouvées - Boucle complémentaire
    Bonjour à tous,
    J'espère que tout le monde se porte à merveille.

    Avec ce code, trouvé sur notre forum, je lance une recherche sur les mots 'allocations familiales'. Deux questions :
    1. Comment peut-on lister toutes les URL trouvées ?
    2. Comment demander de passer à la page de résultats suivantes si l'URL ne contient pas le mot 'famifed' ?


    Un grand merci pour les pistes

    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
    Option Explicit
     
    ' Nécessite d'activer les références:
    ' Microsoft Internet Controls
    ' Microsoft HTML Object Library
     
    Sub RechercheVBAExcel()
       'Déclaration des variables
       Dim IE As New InternetExplorer
       Dim IEDoc As HTMLDocument
       Dim InputGoogleZoneTexte As HTMLInputElement
       Dim InputGoogleBouton As HTMLInputElement
       Dim FormGoogleCherche As HTMLFormElement
       'Chargement d'une page Web Google
       IE.Navigate "www.google.be"
       'Affichage de la fenêtre IE
       IE.Visible = True
       'attend le chargement complet de la page
       WaitIE IE
       'pointe le membre Document
       Set IEDoc = IE.Document
       'pointe notre Zone de texte
       Set InputGoogleZoneTexte = IEDoc.all("q")
       'définit le texte que l'on souhaite placer à l'intérieur
       InputGoogleZoneTexte.Value = "allocations familiales"
       '--- ne fonctionne pas ---
       'pointe le bouton
       'Set InputGoogleBouton = IEDoc.all("btnK")
       'simule un clic
       'InputGoogleBouton.Click
       '--- fonctionne ---
       'pointe la Form qui contient Zone de Texte + Bouton (entre autres)
       Set FormGoogleCherche = IEDoc.forms("f")
       'exécute l'action Submit de la Form
       FormGoogleCherche.submit
       'attend la fin de la recherche
       WaitIE IE
     
     
       'libère les variables
       Set IE = Nothing
       Set IEDoc = Nothing
    End Sub
     
    Sub WaitIE(IE As InternetExplorer)
       'boucle tant que la page n'est pas totalement chargée
       Do Until IE.ReadyState = READYSTATE_COMPLETE
          DoEvents
       Loop
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Salut,

    sans garantie, tu peux constater la présence de balises commentaires <!--n--> et <!--m--> ainsi qu'une autre balise <!--z-->

    et les réponses ont l'air d'être des div class "g"

    penses tu que ca peut t'avancer ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Merci, Jean-Philippe, pour ce premier élément.

    Je vais aller très lentement car c'est tout nouveau.

    Mon premier soucis est que j'arrive sur IE et j'ai le premier pop-up avec les cookies. Comment faire pour appuyer sur le bouton 'J'accepte' ?

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 952
    Points : 9 281
    Points
    9 281
    Par défaut
    hello,
    Citation Envoyé par QuestVba Voir le message
    Avec ce code, trouvé sur notre forum, je lance une recherche sur les mots 'allocations familiales'. Deux questions :
    1. Comment peut-on lister toutes les URL trouvées ?
    2. Comment demander de passer à la page de résultats suivantes si l'URL ne contient pas le mot 'famifed' ?
    1 - Pourquoi ne fais-tu pas une recherche sur "allocations familiales famifed" ?
    2 - Pour faire de l'automation avec un navigateur en VBA il y a mieux qu'IE, il y a seleniumbasic qui utilise un navigateur classique. Sous quel O.S es-tu et qu'utilises-tu comme navigateur au quotidien ?

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Salut,

    Citation Envoyé par jurassic pork
    1 - Pourquoi ne fais-tu pas une recherche sur "allocations familiales famifed" ?
    Effectivement, cela est(serait) plus rapide. En fait, l'idée est de savoir en quelle position est famifed.

    Citation Envoyé par jurassic pork
    2 - Pour faire de l'automation avec un navigateur en VBA il y a mieux qu'IE, il y a seleniumbasic qui utilise un navigateur classique. Sous quel O.S es-tu et qu'utilises-tu comme navigateur au quotidien ?
    Je connais pas du tout seleniumbasic. Au quotidien, j'utilise Chrome et Firefox. Si j'utilise IE, c'est parce que je suis parti du tuto : https://qwazerty.developpez.com/tuto...-et-vba-excel/

    Si tu peux me guider...

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 952
    Points : 9 281
    Points
    9 281
    Par défaut
    pour l'installation de seleniumbasic tu peux regarder ici et je te conseille de l'utiliser plutôt avec Google Chrome.
    [EDIT]
    et voici un exemple pour faire une recherche dans google et afficher tous les liens trouvés des 5 premières pages dans la première colonne de la feuille famifed d'un classeur Excel :
    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
     
    Public Sub TestChromeSelenium()
    Dim robot As New WebDriver
    Dim maRecherche, liens As Object
    Dim x, y, numPage As Integer
    Rem robot.AddArgument "--headless"  ' pour mettre le navigateur en mode invisible
    Rem robot.AddArgument "--user-data-dir=d:\temp\selenium" ' pour pointer vers un profile particulier (enregistre les cookies dedans)
    robot.Timeouts.ImplicitWait = 8000  ' temps max 8 secondes pour les commandes find avant exception
    robot.Start "chrome", "https://www.google.be"
    robot.Window.SetSize 640, 480
    robot.Get "/"
    Set maRecherche = robot.FindElementByName("q")
    maRecherche.SendKeys "Allocations familiales famifed"
    robot.FindElementByName("btnK").Submit
    robot.FindElementById "pnnext" ' on attend qu'un élément de la page à afficher soit présent
    numPage = 1
    x = 1
    For y = 1 To 5 ' on balaie les 5 premières pages de recherche
    Set liens = robot.FindElementsByXPath("//div[@class='yuRUbf']/a")
    For Each elem In liens
     'Debug.Print elem.Attribute("href")
     Sheets("Famifed").Cells(x, 1).Value = elem.Attribute("href")
     x = x + 1
    Next
    robot.FindElementById("pnnext").Click ' on clique sur Suivant
    robot.Wait (1500) ' on attend que la page suivante s'affiche
    Next y
    robot.Wait (5000) ' temporisation de 5 secondes avant de sortir
    robot.Quit
    End Sub
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Wouahhhh.

    jurassic pork, ton code marche du tonnerre. Presque.
    Car chez moi j'ai une erreur car à l'ouverture de chrome, j'ai le pop-up avec les cookies. J'ai vu que l'id (pour dire J'accepte) est 'introAgreeButton' mais je n'arrive pas, pour l'instant, à cliquer dessus.

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 952
    Points : 9 281
    Points
    9 281
    Par défaut
    si tu décommentes la ligne avec le paramètrage du profil en pointant vers un répertoire où tu as les droits d'écrire, et si pendant l'automation tu cliques sur j'accepte les cookies (avec la souris) tu n'auras plus le popup ensuite.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  9. #9
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Ben oui, je me suis précipité sans regarder les REM tellement, c'est top.
    Bon je vais continuer mon exploration.
    Un grand merci pour ce pas de géant !

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

Discussions similaires

  1. [debutant] lister tout les mots d'une page web!
    Par kriskikout dans le forum Web
    Réponses: 20
    Dernier message: 31/05/2006, 22h47
  2. [W3C] rendre toutes les pages visibles
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 31/01/2005, 19h07
  3. [CR.NET] affichage de toute les pages de l'état
    Par HULK dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 19/01/2005, 17h34
  4. [firebird 1.5] lister toutes les tables
    Par c0rwyn dans le forum SQL
    Réponses: 2
    Dernier message: 02/09/2004, 14h36
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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