intimed
Messages postés4Date d'inscriptionjeudi 7 juillet 2011StatutMembreDernière intervention30 mai 2017
-
29 mai 2017 à 16:54
Bonjour tout le monde,
Pourriez-vous SVP m'aider à compléter mon code VBA qui permet de faire une recherche sur google.fr à partir d'un fichier excel et de récupérer le premier lien affiché et son détail court.
Explications :
J'ai une feuille Excel 2013 contenant 4 colonnes :
- Colonne B: la donnée à rechercher sur google se trouve sur cette colonne.
- Colonne C: Je veux que mon programme renseigne cette colonne par le premier lien affiché sur google après recherche de la donnée de la colonne B
- Colonne D: Je veux que mon programme renseigne cette colonne par le détail court du premier lien affiché.
Après des recherches sur le net, j'ai réussi d’écrire le code VBA qui permet de faire la recherche sur google à partir d'une feuille excel et de renseigner la colonne C et D. toutefois, je n'ai pas réussi à trouver le code qui permet de récupérer le premier lien affiché.
Veuillez trouver ci-dessous le code source, vous trouverez sur l'image des exemples explicatifs.
Merci d'avance pour votre soutient.
Cordialement
Sub WaitIE(IE As InternetExplorer)
'On boucle tant que la page n'est pas totalement chargée
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub
Sub RechercheGoogle(ByVal TextRechrch As String, ByVal Numligne As Integer)
'Déclaration des variables
Dim IE As InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputGoogleZoneTexte As HTMLInputElement
Dim InputGoogleBouton As HTMLInputElement
Dim HtmlElementLien As HTMLGenericElement
Dim HtmlElementDetail As HTMLGenericElement
Dim Feuil_Trait As Worksheet
Dim LienExtrait As String
Dim DetailExtrait As String
'Initialisation des variables
Set Feuil_Trait = ThisWorkbook.Sheets("Feuil1")
Set IE = CreateObject("InternetExplorer.Application")
'Chargement d'une page web Google
IE.navigate "www.google.fr"
'Affichage de la fenêtre IE
IE.Visible = True
'On attend le chargement complet de la page
WaitIE IE
'On pointe le membre Document
Set IEDoc = IE.document
'On pointe notre Zone de texte
Set InputGoogleZoneTexte = IEDoc.all("q")
'On définit le texte que l'on souhaite placer à l'intérieur
InputGoogleZoneTexte.Value = TextRechrch
'On attend la fin de la recherche
WaitIE IE
'On pointe notre bouton
Set InputGoogleBouton = IEDoc.all("btnG")
'On simule un clic
InputGoogleBouton.Click
'On attend la fin de la recherche
WaitIE IE
'---------------------------------------------------------------------
' |||||||||||||||||| ICI Où JE ME SUIS BLOQUE |||||||||||||||||||||||
'---------------------------------------------------------------------
'affecter le resulat de recherche
' Set HtmlElementLien = IEDoc.body.all(60)
' Set HtmlElementDetail = IEDoc.body.all(61)
'On le place dans notre variable prévue à cet effet
LienExtrait = HtmlElementLien.innerText
DetailExtrait = HtmlElementDetail.innerText
'-----------------------------------------------------------------------
'On affiche le resultat
Feuil_Trait.Cells(Numligne, "C") = LienExtrait
Feuil_Trait.Cells(Numligne, "D") = DetailExtrait
'On libère les variables
IE.Quit
Set IE = Nothing
Set IEDoc = Nothing
End Sub
Sub Traitement()
Dim Feuil_Trait As Worksheet
Dim TextRecherche As String
Dim i As Integer
Set Feuil_Trait = ThisWorkbook.Sheets("Feuil1")
For i = 4 To 7
TextRecherche = Feuil_Trait.Cells(i, "B")
Call RechercheGoogle(TextRecherche, i)
Next
MsgBox "Recherche terminée.", vbInformation
End Sub