Microsoft 365 insertion carte google maps lie a un calcul de trajet dans excel

DenyscVir

XLDnaute Nouveau
Bonjour

Je souhaite savoir s'il est possible d'insérer une carte automatiquement montrant le trajet en fonction de 2 points qui peuvent être des CP ou des villes ?

J'ai réussi à faire un calcul automatique des KM via un API google mais là franchement je n'y arrive pas

Pouvez-vous svp m'aider ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour DenyscVir,
N'ayant pas de clé API sur ce service Google, j'ai regardé ce que ChatGPT ( Lien ) répondrait à votre requête sans pouvoir le tester :
Excel VBA, Je souhaite savoir s'il est possible d'insérer une carte automatiquement montrant le trajet en fonction de 2 villes ?
Il répond ceci :
  1. Obtenez une clé API Google Maps : Pour utiliser l'API Google Maps, vous devez obtenir une clé API Google Maps en vous inscrivant sur le site Web de Google Cloud Platform.
  2. Activez l'API Directions : Assurez-vous d'activer l'API Directions dans votre projet Google Cloud Platform. Vous devrez peut-être aussi activer l'API Maps JavaScript.
  3. Écrivez le code VBA : Voici un exemple de code VBA qui vous montre comment insérer une carte montrant le trajet entre deux villes dans Excel. Assurez-vous d'ajuster les clés API et les noms de villes selon vos besoins.
et donne ce code :
VB:
Sub InsérerCarteTrajet()
    Dim URL As String
    Dim HTML As Object
    Dim ie As Object
    Dim villeDepart As String
    Dim villeArrivee As String

    ' Définir les villes de départ et d'arrivée
    villeDepart = "Paris"
    villeArrivee = "Marseille"

    ' Construire l'URL pour l'API Google Maps Directions
    URL = "https://www.google.com/maps/embed/v1/directions?key=VOTRE_CLE_API&origin=" & villeDepart & "&destination=" & villeArrivee

    ' Créer une instance de Internet Explorer
    Set ie = CreateObject("InternetExplorer.Application")

    ' Ouvrir une fenêtre Internet Explorer invisible
    With ie
        .Visible = False
        .navigate URL
        ' Attendre que la page se charge
        Do While .Busy Or .readyState <> 4
            DoEvents
        Loop

        ' Insérer la carte dans une feuille Excel
        Set HTML = .document
        ActiveSheet.Shapes.AddOLEObject ClassType:="Shell.Explorer", Link:=False, DisplayAsIcon:=False, Width:=400, Height:=400, Left:=100, Top:=100
        ActiveSheet.OLEObjects(ActiveSheet.OLEObjects.Count).Object.src = URL

        ' Fermer Internet Explorer
        .Quit
    End With

    ' Libérer les objets
    Set ie = Nothing
    Set HTML = Nothing
End Sub
Essayez, ça ne coute rien. :)
Pour avoir essayé d'autres codes, ChatGPT est loin de la perfection en VBA, mais donne quelquefois certaines pistes intéressantes.
 

Statistiques des forums

Discussions
312 209
Messages
2 086 274
Membres
103 168
dernier inscrit
isidore33