Bonjour,

Je suis débutant en VBA , je me suis donc aidé d'un tutoriel pour réaliser ma macro, mais je rencontre quand même des difficultés.

Je souhaite à partir de Excel lancer une recherche d'itinéraire sur Mappy et en récupérer les informations (kilomètre, durée, essence).

J'en suis pour l'instant à la premier étape, c'est à dire lancer la recherche. Ci-dessous mon code.

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
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 RechercheVBAExcel()
 
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputmappyZoneTexte As HTMLInputElement
Dim InputmappyBouton As HTMLInputElement
'Chargement d'une page Web Mappy
IE.navigate "http://fr.mappy.com/itineraire#/1/M2/TItinerary/I/N151.12061,6.11309,2.32641,46.68697/Z3/"
 
'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 de depart
Set InputmappyZoneTexte = IEDoc.all("from")
 
'On définit le texte que l'on souhaite placer à l'intérieur
InputmappyZoneTexte.Value = "Vaujours 93410"
 
'On pointe notre Zone de texte d'arrivee
Set InputmappyZoneTexte = IEDoc.all("to")
 
'On définit le texte que l'on souhaite placer à l'intérieur
InputmappyZoneTexte.Value = "raincy 93340"
 
'On pointe notre bouton
Set InputmappyBouton = IEDoc.all("ItineraryFormView-itinerary-trigger")
 
'On simule un clic
InputmappyBouton .Click
 
'On attend la fin de la recherche
WaitIE IE
 
'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing
End Sub

En exécutant ce code la page internet s'ouvre bien mais aucune information n'est entrée dans les cases "départ" et "Arrivée" et la recherche ne se lance pas.

Auriez vous une piste pour solutionner ce problème?

Par avance merci!

Cordialement,

Matthieu.