Ie objet requis
Bonjour, j'ai fait un code qui me permet d'aller sur internet explorer et d'ouvrir une recherche selon une adresse et de là, je veux ouvrir la carte pour obtenir l'itinéraire mais ça ne fonctionne pas. voici mon code:
Sub CarteHotel()
Dim IE As InternetExplorer
Dim InputGoogleZoneTexte As HTMLInputElement
Dim InputGoogleBouton As HTMLInputElement
Dim strAddHotel As String
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "www.google.fr"
IE.Visible = True
WaitIE IE
Set iedoc = IE.document
Set InputGoogleZoneTexte = iedoc.all("q") 'On pointe notre Zone de texte
Sheets("travaux").Select
strAddHotel = Range("b4").Value
InputGoogleZoneTexte.Value = strAddHotel 'On définit le texte que l'on souhaite placer à l'intérieur
Set FormGoogleCherche = iedoc.forms("f") 'On pointe la Form qui contient Zone de Texte + Bouton (entre autres)
FormGoogleCherche.submit 'On exécute l'action Submit de la Form
Set getElementsByid = iedoc.getElementsByName("lu_map") 'On pointe la Zone de l'image
IE.document.getElementById("lu_map").Click
'On libère la variable IE
Set IE = Nothing
Set iedoc = Nothing
End Sub
J'ai un message d'erreur sur la ligne : IE.document.getElementById("lu_map").Click
VBA me dit : objet requis
mais si je fait F8, ça passe sans problème, tout le reste du code s'exécute.
Est-ce que quelqu'un sais comment je peux régler se problème?
merci de votre aide.
Bonjour Infodes,
Il manque déjà des définitions de variables
Il faut utiliser un getElementsById et non getElementsByName
Voici le code correcte
Sub CarteHotel()
Dim IE As InternetExplorer
Dim IEDoc As HTMLDocument ' Manque ceci
Dim FormGoogleCherche As HTMLInputElement ' Manque ceci
Dim ElementByid As HTMLElementCollection ' Manque ceci
Dim InputGoogleZoneTexte As HTMLInputElement
Dim InputGoogleBouton As HTMLInputElement
Dim strAddHotel As String
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "www.google.fr"
IE.Visible = True
WaitIE IE
Set IEDoc = IE.document
Set InputGoogleZoneTexte = IEDoc.all("q") 'On pointe notre Zone de texte
Sheets("travaux").Select
strAddHotel = Range("b4").Value
InputGoogleZoneTexte.Value = strAddHotel 'On définit le texte que l'on souhaite placer à l'intérieur
Set FormGoogleCherche = IEDoc.forms("f") 'On pointe la Form qui contient Zone de Texte + Bouton (entre autres)
FormGoogleCherche.submit 'On exécute l'action Submit de la Form
Set ElementByid = IEDoc.getElementById("lu_map") 'On pointe la Zone de l'image
ElementByid.Click
'On libère la variable IE
Set IE = Nothing
Set IEDoc = Nothing
End Sub
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
A+
Bonjour BrunoM45, merci pour l'aide
merci!
Re,
Quel navigateur est ouvert lorsque tu lances ton code ?
Quand tu inspectes l'élément de ta page, comment est-il référencé ?
Quel est le contenu de ta cellule B4 de la feuille travaux ?
Sinon peut-être un truc tout bête
Sub CarteHotel1()
Dim strAdrLien As String
strAdrLien = "http://www.google.fr/maps/place/hôtel+à+" & Sheets("travaux").Range("b4").Value
ThisWorkbook.FollowHyperlink strAdrLien, , True
End Sub
A+
bonjour, j'utilise Internet explorer version 11, l'élément de ma page est référencé par id="lu_map" et ce que j'ai dans la cellule "B4" est l'adresse de l'hôtel que je dois trouver.
J'ai essayé le code que tu m'as donné et je l'ai modifié et ça fonctionne très bien. Mais j'aimerais quand même savoir pourquoi le getelementbyid ne fonctionne pas! Je vais en avoir besoin à plusieurs places dans mon code. As-tu une idée?
Voici le code que me donne F12:
<img width="138" height="80" title="Map of Quality Hotel Montreal East" id="lu_map" alt="Map of Quality Hotel Montreal East" src="/maps/vt/data=RfCSdfNZ0LFPrHSm0ublXdzhdrDFhtmHhN1u-gM,CCFWvDgJ8z1HYSPa8BwqpU_FOTDFGWI3SN7kCBKP6cNah34xlgAJ0KGrpdJegk2Ng8S6tnFn5ceDFs0w8qszYezhFsYCDYqYkV8eOQZMTYiy_-pOBlYeOvAI10DM9OA1FiOK" border="0">
merci pour l'aide!
Bonjour BrunoM45, j'ai pris ta méthode en fin de compte, ça simplifie de beaucoup le code et je n'ai pas besoin des ID et name, etc..
En plus, ça m'a permis de débugger un autre programme que je n'arrivais pas à faire fonctionner.
Merci beaucoup pour l'aide. Bonne fin de journée.