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 :

Lancer une requête sur Google depuis Excel avec Internet Explorer


Sujet :

VBA

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 8
    Points
    8
    Par défaut Lancer une requête sur Google depuis Excel avec Internet Explorer
    Bonjour,

    J'ai essayé ce code mais il ne fonctionne pas sur mon ordinateur. J'ai Excel 2010 et Windows 10.
    Le but est de récolté les nombres d'enregistrements que le moteur de recherche trouve par rapport à un mot.
    Dans la feuille Excel, j'ai mis ceci (voir écran)

    Nom : 2019-08-17_10-10-04.jpg
Affichages : 1248
Taille : 20,1 Ko

    Le code VBA est le suivant :
    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
     
    Sub SearchGoogle()
        Dim ie As Object
        Dim form As Variant
        Dim button As Variant
        Dim LR As Integer
        Dim var As String
        Dim var1 As Object
     
        LR = Cells(Rows.Count, 1).End(xlUp).Row
     
        For x = 2 To LR
            var = Cells(x, 1).Value
     
            Set ie = CreateObject("internetexplorer.application")
     
            ie.Visible = True
     
            With ie
                .Visible = True
                .navigate "http://www.google.fr"
                While Not .readyState = READYSTATE_COMPLETE
                Wend
            End With
     
            While ie.Busy
                DoEvents
            Wend
     
            Application.Wait (Now + TimeValue("0:00:02"))
     
            ie.document.getElementById("lst-ib").Value = var
     
            Set form = ie.document.getElementsByTagName("form")
     
            Application.Wait (Now + TimeValue("0:00:02"))
     
            Set button = form(0).onsubmit
     
            form(0).submit
     
            While ie.Busy
                DoEvents
            Wend
     
            Set var1 = ie.document.getElementById("resultStats")
            Cells(x, 2).Value = var1.innerText
     
            ie.Quit
     
            Set ie = Nothing
        Next x
     
    End Sub
    Pour information, la variable ie.document ne contient rien. Et je ne comprend pas pourquoi.

    Nom : 2019-08-17_10-27-54.jpg
Affichages : 1269
Taille : 62,6 Ko

    Merci de votre aide

    PS : Ce code provient d'un magazine informatique ("Micro Portable")

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Un bon tutoriel: Interaction avec Internet Explorer via VBA Excel.

    En partant de ce tutoriel, voici un petit exemple:
    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
    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.fr"
       '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 = "VBA Excel"
       '--- 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
       Debug.Print IE.Document.body.all("resultStats").innerText
       '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
    Bonne continuation

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    Super un grand merci

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

Discussions similaires

  1. Lancer une requête sur une période
    Par loho87 dans le forum Designer
    Réponses: 3
    Dernier message: 22/10/2010, 14h49
  2. [jxl] Faire une requête sur un tableur Excel
    Par mimich dans le forum Documents
    Réponses: 7
    Dernier message: 04/08/2009, 15h48
  3. Réponses: 5
    Dernier message: 10/02/2008, 20h33
  4. sauver une picture en gif depuis excel avec Visual baisi
    Par cada01a dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/11/2005, 19h58

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