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 55 56 57 58 59 60 61 62 63 64
| '-------------------------------------------------------------------------------
' Pensez à ajouter les librairies "Microsoft HTML Object Library"
' et "Microsoft Internet Controls".
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
Public Function TrajetGoogleMaps(AdresseDépart As String, AdresseArrivée As String, _
Optional VoirGoogleMaps As Boolean = False) As Variant
'-------------------------------------------------------------------------------
' Ouvre Google Maps sur le calcul du trajet des adresses passées en arguments.
' Retourne : la distance du trajet proposé, ou vide si ereur.
' Exemple d'appel : TrajetGoogleMaps("22 rue Cassette, 75006, Paris", "Bordeaux")
'-------------------------------------------------------------------------------
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim T As Double
Dim i As Integer
On Error Resume Next
' Active la barre d'état:
Application.DisplayStatusBar = True
Application.StatusBar = "Calcul du trajet : " & AdresseDépart & " / " & AdresseArrivée
Application.Cursor = xlWait
' Ouvre IE, et lance le calcul:
IE.Visible = VoirGoogleMaps
IE.navigate "https://www.google.fr/maps/dir/" & AdresseDépart & "/" & AdresseArrivée
' Attend que IE soit disponible:
Do Until IE.readyState = READYSTATE_COMPLETE And IE.Busy = False
DoEvents
Loop
' Recherche dans le document où est écrit le résultat:
Set IEDoc = IE.document
For i = 1 To 10
T = Timer: While T + 3 > Timer: Wend
' Pointe sur le champ qui contient le trajet calculé et retourne la distance:
Set Ret = IEDoc.getElementsByClassName("section-directions-trip-distance section-directions-trip-secondary-text")
' Extraction dans le libellé de la distance:
TrajetGoogleMaps = Ret.Item(0).textContent
If TrajetGoogleMaps > "" Then Exit For
Next i
' Si VoirGoogleMaps est vrai:
If VoirGoogleMaps = True Then MsgBox "Cliquez ici pour fermer Google Maps", vbOKOnly, "Google Maps"
' Ferme Internet:
IE.Quit
Set IE = Nothing
' Efface la barre d'état:
Application.StatusBar = ""
Application.Cursor = xlDefault
End Function |
Partager