Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro pour calculer la distance entre deux villes via google maps

platina

XLDnaute Nouveau
Bonjour !

Je souhaite créer une macro utilisant google maps pour calculer la distance (via la route, et non à vol d'oiseau) entre deux villes ;
Disons que j'ai le nom ou code postal (ce qui rend la chose la plus simple!) de la première ville en A1 et le nom ou code postal de la seconde ville en A2.
Comment faire pour afficher la distance entre les deux en A3 ?

Merci beaucoup !!
 

philppe27

XLDnaute Occasionnel
Bonjour à tous, je ressors cette discussion car j'aurais besoin d'une info complémentaire qui sauf erreur de ma part ne s'y trouve pas.
Dans le fichier un peu plus haut calculdomicile_travail.xlsx on trouve 2 formules :

=SERVICEWEB("https://maps.googleapis.com/maps/api/distancematrix/xml?origins="&B2 & " " &C2&"&destinations="&F2 & " " &G2&"&mode=driving")
=SI(ESTNA(I2);"";ARRONDI(FILTRE.XML(I2;"/DistanceMatrixResponse/row/element/distance/value")/1000;1))

qui permettent de calculer facilement la distance entre 2 villes dans googlemaps.
Peut-on modifier le chemin et les formules pour obtenir le temps nécessaire en voiture ?

Merci d'avance pour vos réponses
 

Fredjo999

XLDnaute Nouveau
Bonjour à toutes et tous,

J'ai parcouru la discussion avec un intérêt énorme !
En effet, j'aimerais pouvoir disposer d'un tel calcul dans excel (calcul de km d'adresse exacte à adresse exacte).

J'ai essayé les différents fichiers mais rien ne semble fonctionner chez moi... on dirait clairement que Excel n'arrive pas à faire la requête sur Google Maps.. Est-ce que je dois paramétrer quelque chose dans mon Office Excel (365) ??

Merci d'avance pour votre retour et désolé si c'est une question déjà posée.. je n'ai pas trouvé
 

micou

XLDnaute Nouveau
Bonjour @tatiak

Tout d'abord merci pour ce partage.
Je rencontre des difficultés avec certains calculs de distance. Les résultats sont erronnés et je n'arrive pas à savoir pourquoi

Ex :
Adresse de départ : 36 avenue Jean Jaurès 63400 CHAMALIERES
Ville d'arrivée : 30 Rue Pierre le Vénérable 63000 CLERMONT FERRAND

Résultat : 596.4km (or sur google maps directement cela représente 3,5km)

Par contre ce deuxième exemple fonctionne :
Adresse de départ : 36 avenue Jean Jaurès 63400 CHAMALIERES
Ville d'arrivée : Rue du 8 mai 63000 CLERMONT FERRAND

Résultat : 0.9km(et sur google maps directement c'est pareil)

Auriez-vous une idée ?

Merci par avance

Micou
 

micou

XLDnaute Nouveau
Bonjour

Merci pour la rapidité de votre réponse.
Je constate que cela marche chez vous, mais malheureusement même avec votre fichier cela ne marche pas chez moi (Voir PJ)

Je ne vois pas du tout pourquoi
 

Pièces jointes

  • Pb Distances_Formules-1.xlsx
    9.2 KB · Affichages: 220

poilamonnez

XLDnaute Junior
Merci Tatiak,
ça réponds plus ou moins à ma demande, mais des fois ça répond "Franc" au lieu du code postal. c'est certainement dû à Google !
Personnellement j'ai juste besoin du kilométrage entre 2 villes en France Corse incluse et que la requête me donne juste les n° de département ainsi que la durée du trajet.
En fait tel quel c'est presque bon mais pas idéal.
Si quelqu'un a un peu de temps ....
Bonne soirée
 

Couture

XLDnaute Nouveau
Bonjour à tous !
J'ai voulu intégrer en simplifiant par rapport à mes besoins le code du dernier fichier Excel. D'avance je m'excuse cela faisait longtemps que je n'avais pas touché à VBA du coup je n'ai plus en tête le nom des procédures etc.

Mon problème :
1/ Si je copie/colle le code "simplifié" en fonction de mes besoins dans le fichier sur lequel je suis en train de travailler, celui-là ne fonctionne pas.
2/A l'inverse, si je copie/colle ce que j'avais déjà créé sur mon fichier de travail sur le fichier téléchargé du forum et que je simplifie le code "calcul des distances" en fonction de mes besoins tout fonctionne :/
==> j'ai pourtant exactement les deux mêmes codes sur toutes les feuilles/modules etc. Donc j'ai vraiment du mal à voir d'où peut venir mon pb.

J'ai fait un pas à pas détaillé sur chacun des classeurs et j'ai identifié le problème (enfin je crois) mais ne sais pas le résoudre.

Dans le code de "Get_Trajet" à un moment on fait appel aux éléments contenus dans "Json.rows" --> dans le cas du fichier téléchargé, ces éléments se lient aux "Elem" et "Elem1" alors que dans mon second fichier, "Elem" et "Elem1" restent vide (pourtant Json.rows ne l'est pas...).

Je ne sais pas si je suis claire... désolée !
 

Couture

XLDnaute Nouveau
Personne ?
C'est cette partie là qui bug :
Code:
'Debug.Print Site
       For Each Elem In Json.Rows
            For Each Elem1 In Elem.elements
                Debug.Print Elem1.distance.Value
                ok = Not (Elem1.Status = "ZERO_RESULTS")
                .Cells(Lg, 4).Value = Format(Elem1.distance.Value / 1000, "# ###.00") * 1
               
            Next Elem1
        Next Elem
 

Couture

XLDnaute Nouveau
J'ai compris mon problème mais je ne sais le résoudre

==> mon ".Rows" devrait être ".rows" idem pour mon ".Value"... mais VBA me le corrige automatiquement pour remettre des majuscules ! comment faire ? Merci !
 

Neileru4

XLDnaute Occasionnel

Y a t-il possibilité de mettre la distance km en temps en minutes?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…