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

Compte Supprimé 979

Guest

mf1608

XLDnaute Nouveau
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.
 
C

Compte Supprimé 979

Guest
?? je propose juste une alternative à ta bonne proposition (mais ici sans clé) et avec l'ajout une carte du chemin à prendre
Si ça gêne, je peux effacer mon message sur simple demande
??
Pierre
Non Pierre, tes contributions sont toujours très enrichissantes...
c'est juste ta façon de faire...
 

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,

Est-ce bien mon fichier que tu utilises ?
As-tu bien le Checkbox dans la feuille "Itinéraire"


@+
 
C

Compte Supprimé 979

Guest
Re,

Ceci explique cela 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
299
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…