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 !!
 
C

Compte Supprimé 979

Guest
Bonjour,
Avez-vous eu l’occasion de tester avec les codes postaux Belge ?
Merci d'avance.
bav.

Bonjour mf1608

Désolé, j'avais un petit souci avec ma clé API Google, je ne pouvais pas tester la dernière version :(

Maintenant, c'est chose faite et la dernière version fonctionne également pour nos amis Belge ;)
2020-04-03_16h31_12.png

Dernière version ICI : https://www.excel-downloads.com/thr...s-via-google-maps.106712/page-18#post-1040719

Au plaisir
 

mf1608

XLDnaute Nouveau
Bonjour mf1608

Désolé, j'avais un petit souci avec ma clé API Google, je ne pouvais pas tester la dernière version :(

Maintenant, c'est chose faite et la dernière version fonctionne également pour nos amis Belge ;)
Regarde la pièce jointe 1061022

Dernière version ICI : https://www.excel-downloads.com/thr...s-via-google-maps.106712/page-18#post-1040719

Au plaisir
Bonjour BrunoM45

un grand merci pour ton test. juste une question un peu bête... Il me faut un clé API, mais quelle API dois-je activer au niveau de Google ?

Merci.
Bien à toi.
 

PEACHBIRD

XLDnaute Nouveau
Bonjour,

Après avoir lu les nombres page de ce sujet, je n'ai pas trouvé de réponse à mon problème.

Comment faire pour avoir l'affichage en décimal (2 décimal serait parfait) des km ?

Ci-dessous le script adapté à mon fichier.

Merci d'avance pour votre aide.

VB:
'====================
'Calcul des distances
'====================
Option Explicit
Public Const DIST = "http://www.distance2villes.com/recherche?source="
Sub Distance()
    Dim lg As Integer, i As Integer
    Dim Url As String, Txt As String, d, temps

    With Sheets("Facturation")
    ActiveSheet.Unprotect Password:="123"
    lg = .Cells(Rows.Count, 1).End(xlUp).Row
    For i = 17 To lg
        If Range("B" & i).Value <> "" And Range("B" & i).Value <> 0 Then
        Url = DIST & .Range("B" & i).Value & "&destination=" & .Range("C" & i).Value
        With CreateObject("WINHTTP.WinHTTPRequest.5.1")
            .Open "GET", Url, False
            .send
            Txt = .responseText
        End With
        .Range("E" & i).Value = Split(Split(Txt, "id=""distanciaRuta"">")(1), "</strong>")(0)
    'en nombre
        .Range("E" & i).NumberFormat = "##,##"
        .Range("E" & i) = Val(Replace(.Range("E" & i), ",", ""))
    End If
    Next i
    ActiveSheet.Protect Password:="123"
End With
    MsgBox "Le calcul des KMs est terminé !"
End Sub
 

Audreyouyou

XLDnaute Nouveau
Bonjour @BrunoM45 et à tous les autres,
Merci beaucoup pour ton fichier.
J'ai utilisé le mode "Multi-Départs/Multi-Destinations" en rentrant les coordonnées GPS dans chaque feuille. Je suis embêtée car j'ai un message d'erreur qui s'affiche : "erreur d'exécution 438 : propriété ou méthode non gérée par cet objet". C'est la ligne suivante qui est surlignée en jaune dans le code :
Désactiver la checkbox de détail du parcours
CheckBox1.Value = False
Je pense que c'est un truc tout bête que je n'ai pas compris. Si c'est le cas, désolée pour ma question ! Je suis novice en macros et il se peut que j'ai mal compris quelque chose d'élémentaire dans le fonctionnement de ton fichier. J'ai cherché pas mal de temps en essayant de faire les autres modes, de passer par les adresses plutôt que par les points GPS, etc. mais je n'ai rien trouvé qui me permette de savoir ce que je dois faire pour résoudre cette erreur. D'où ce message :)
Bonne soirée,
Audrey
 
C

Compte Supprimé 979

Guest
Bonjour Audrey,
Bonjour @BrunoM45 et à tous les autres,
Merci beaucoup pour ton fichier.
J'ai utilisé le mode "Multi-Départs/Multi-Destinations" en rentrant les coordonnées GPS dans chaque feuille. Je suis embêtée car j'ai un message d'erreur qui s'affiche : "erreur d'exécution 438 : propriété ou méthode non gérée par cet objet". C'est la ligne suivante qui est surlignée en jaune dans le code :
Désactiver la checkbox de détail du parcours
CheckBox1.Value = False

Est-ce bien mon fichier que tu utilises ?
As-tu bien le Checkbox dans la feuille "Itinéraire"
2020-05-10_05h06_23.png


@+
 
C

Compte Supprimé 979

Guest
Re,

Ceci explique cela :rolleyes: les objets ActiveX ne sont pas gérés par les Mac

Il faudra remplacer l'image par une cellule nommer Checkbox1, dans laquelle tu mettras VRAI au départ (à vérifier)

@+
 

Discussions similaires

Réponses
3
Affichages
274

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon