Google import du résultat de recherche en A1
Bonjour à toutes et à tous,
Je vous souhaite une belle journée,
Je n'arrive pas à importer dans excel le résultat de ma recherche qui s'affiche dans Google :
Mes recherches m'ont permis de trouver ce code :
Option Explicit
Sub Web_Table_Option_One()
Dim xml As Object
Dim html As Object
Dim objTable As Object
Dim result As String
Dim lRow As Long
Dim lngTable As Long
Dim lngRow As Long
Dim lngCol As Long
Dim ActRw As Long
Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
With xml
.Open "GET", "https://", False
.send
End With
result = xml.responseText
Set html = CreateObject("htmlfile")
html.body.innerHTML = result
Set objTable = html.getElementsByTagName("table")
For lngTable = 0 To objTable.Length - 1
For lngRow = 0 To objTable(lngTable).Rows.Length - 1
For lngCol = 0 To objTable(lngTable).Rows(lngRow).Cells.Length - 1
ThisWorkbook.Sheets(1).Cells(ActRw + lngRow + 1, lngCol + 1) = objTable(lngTable).Rows(lngRow).Cells(lngCol).innerText
Next lngCol
Next lngRow
ActRw = ActRw + objTable(lngTable).Rows.Length + 1
Next lngTable
End SubJ'ai poussé plus avant mes recherches en fonction de mes connaissances
Après avoir saisi mon adresse :
J'ai fait un clic droit sur la ligne résultat et ouvert les codes "inspecter" qui donnent en "éléments :
les infos suivantes : title="Rechercher".value=value="137 avenue edmond grasset 17000 la rochelle"
J'ai refait 2 codes :
l'un pour saisir mon adresse :
Sub Ouvrir()
Dim fichier As String
On Error Resume Next
[h9].Copy
fichier = "https://google
"
ShellExecute 0, "", fichier, "", "", 0
End Subet l'autre (ne riez pas pas LOL) pour importer l'adresse :
Sub titre()
[a1] = Title = "Rechercher"
End SubMais je n'ai pas réussi à importer l'adresse.
Je joins le fichier test ... vous sauriez comment faire ?
Avec mes remerciements,
Je continue mes recherches mais .....
lionel,
Bonjour,
Que voulez-vous importer ? L'adresse, vous l'avez bien saisie sur Google ou sur votre fichier ? L'intérêt me semble limité pour ne pas dire nul.
Et ce n'est pas un sujet que je maîtrise, mais il me semble que vous ne puissiez rien récupérer à partir de vos macros personnelles.
Seule la première définit des variables et le document HTML notamment. Dans cette variable html, se trouvent les nombreux composants de la page, que vous pouvez récupérer sur des cellules à condition de les cibler correctement. Exemple, avec votre macro 1 :
[a1].value = html.Title.valueJe ne garantis pas que ça marche mais c'est la marche à suivre. Pour correctement cibler les éléments HTML, vous pouvez taper sur F12 et cliquer sur ce qui vous intéresse.
Cordialement,
Re-Bonjour à toutes et à tous,
je poursuis mes recherches et il semblerait qu'avec le contrôle activeX "Microsoft Web Browser", on puisse importer une page active d'un site.
Mais je n'arrive à insérer l'objet et je ne comprends pas pourquoi ???
J'utilise windows10 64 et office365FR en 64.
Pourriez-vous me dire comment faire ?
Un grand merci par avance,
lionel
Bonjour 3GB,
Merci pour m'avoir répondu, je n'y connais rien également en importation web.
OUI c'est l'adresse saisie que je veux importer.
J'ai tenté "[a1].value = html.Title.value" et ça me dit : erreur 424 Objet requis.
lionel,
Oui, parce que VBA n'absorbe toute l'information à sa disposition de façon autonome.
Il faut qu'on lui ordonne en définissant des variables et en leur affectant un "objet", ici la page HTML en l'occurrence. Sur votre macro Ouvrir, rien n'est possible car il y a juste le lancement d'internet (on ouvre). Et sur l'autre, n'en parlons pas, il n'y a aucune variable.
Il faut déjà rassembler toutes vos sous procédures sur le même module avec une procédure mère qui exécute les autres, et éventuellement des variables publiques en haut de module.
Mais bref, le code que vous avez récupéré fonctionne probablement très bien. Si vous le reprenez à la ligne Set html, vous pouvez le personnaliser à votre convenance. Ex :
Option Explicit
Sub RecupTitre()
Dim xml As Object
Dim html As Object
Dim HTMLElement
Dim ValCherchee
Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
With xml
.Open "GET", "https://", False
.send
End With
Set html = CreateObject("htmlfile")
'MARCHE A SUIVRE GROSSIERE EN ATTENDANT QUE QUELQUUN DE PLUS COMPETENT VOUS EXPLIQUE MIEUX
HTMLElement = html.getelementsbytagname("xxx").item(X) 'vous ciblez à l'aide d'un getelement (byclass,id,name,tagname), ainsi que l'item)
ValCherchee = HTMLElement.value (vous récupérer la valeur de l'attribut visé)
[a1].value = ValCherchee
end subMais pour cela, il faut inspecter les éléments du code de la page avec F12 et la souris (le pointeur).
Et dans votre fenêtre variables locales (dans l'éditeur VBA), vous regardez ce que contiennent vos variables HTML.
Cordialement,
Merci pour vos efforts
Mais je n'y comprends pas grand chose;. Je vais tenter de voir selon votre proposition,
lionel,
Quand on ne maîtrise pas le développement, c'est en effet assez complexe d'effectuer ce genre d'opérations. Je vous conseille donc de vous former sur Google, de tenter de vous connecter automatiquement à votre boîte mail, pour commencer, en ciblant les éléments de la page internet, comme je vous l'ai dit :
touche F12, clic sur l'image ressemblant à une souris, et cliquer sur l'élément à examiner.
Là, la partie du code apparaît et vous avez les différents "attributs" (ma terminologie n'est probablement pas la bonne) de l'élément.
Vous pouvez ensuite agir sur l'élément, via ses attributs, que vous pouvez récupérer par les fonctions getelement(s).
ex : mon élément a un attribut Id = "123", je saisis dans VBA
Set HTMLElement = html.getelementbyid("123")Puis on peut agir sur cet élément ou extraire certaines informations.
Cordialement,
Merci 3GB, je vais voir