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

octu

XLDnaute Nouveau
Re : Macro pour calculer la distance entre deux villes via google maps

BrunoM45,
Dans ta requete de nettoyage, il manque le nettoyage des CONNEXIONS (Données/CONNECTION (ss xl2010)) et des QUERYTABLES créées à chaque tour

Code:
Sub NettoyageRqt()
    Dim Rqt As Name
    On Error Resume Next
    For Each Rqt In ThisWorkbook.Names
        If InStr(1, Rqt.Name, "Requete_GoogleMaps") > 0 Then
            Rqt.Delete
        End If
    Next Rqt

call Nettoyage_QueryTables
CAll Nettoyage_Connections
    On Error GoTo 0
End Sub

Code:
Sub Nettoyage_Connections()
    Dim Connections_twb As Connections
    Dim i
    Set Connections_twb = ThisWorkbook.Connections
    For i = Connections_twb.Count To 1 Step -1
        Connections_twb(i).Delete
    Next i
End Sub

Sub Nettoyage_QueryTables()
    Dim QT  As QueryTables
    Dim i
    Set QT = ThisWorkbook.Worksheets("DataGoogle").QueryTables
    MsgBox QT.Count
    For i = QT.Count To 1 Step -1
        QT(i).Delete
    Next i
End Sub

ps : je vais re-tester ces modifs car j'ai peut être supprimé trop de truc ;-)
 
Dernière édition:

octu

XLDnaute Nouveau
Re : Macro pour calculer la distance entre deux villes via google maps

Bonsoir,
J'ai testé sur 1000 adresses en MULTI DESTINATIONS, j'ai eu notamment des problèmes de retour du temps de trajet global
J'ai corrigé de la sorte, car la ligne en dessous donne le temps en secondes
Code:
    ' Si query via l'API Google
    If Opt1 Then
      ' Trouver la ligne de fin de trajet
      LigData = LigFinD(ShtS, "A", "legs", True)
      ' Récupérer la distance et la durée
      Distance = Split(ConvDistance(ShtS.Range("A" & LigData + 3)), " ")
      'Durée = ConvDurée(ShtS.Range("A" & LigData + 7))
'#####ICI
      Durée = Split((ShtS.Range("A" & LigData + 8)), ": ", , vbTextCompare)(1) / 60

      .Range("TotalKm").Value = Distance(0)
      .Range("TotalDurée").Value = Durée
    Else
 

Blooby73

XLDnaute Nouveau
Re : Macro pour calculer la distance entre deux villes via google maps

Bonjour à tous,

Personnellement la macro a du mal à fonctionner chez moi. Avec le multi-itinéraires il me calcul bien la première adresse mais après j'ai droit à l'erreur "Erreur d'exécution 1004. La méthode 'range' de l'objet '_Worksheet' a échoué".

Une idée du problème ?

Merci d'avance !
 

Markal

XLDnaute Nouveau
Re : Macro pour calculer la distance entre deux villes via google maps

Bonjour au forum
félicitations pour vos contributions quant on voit le premier fichier de Catrice et le dernier de Bruno, il y a du boulot !!
Je voudrais d'ailleurs revenir à la première version de Catrice, qui ne fonctionne plus. Quant je valide ma requête, il m'indique "- plus d'info".
Juste calculer la distance kilométrique "routières" entre deux villes.
Pas d'itinéraires, ni de "a pieds", je rentre les villes avec code postal et j'obtiens les kilomètres.
Merci par avance et excellent journée à vous tous !
 
C

Compte Supprimé 979

Guest
Re : Macro pour calculer la distance entre deux villes via google maps

Bonjour Markal,

Si je me suis permis de reprendre le flambeau de Catrice, c'est bien pour ce soucis ;)
(Son classeur ne fonctionnait plus)
Ensuite avec Piga25 (merci à lui) nous n'avons fait "qu'ajouter" des compléments

Mais tu peux tout à fait faire la même chose avec la dernière version
Sur la feuille Itinéraire, remplir les cellules C1 à C4 et bouton calculer Itinéraire :D

A+
 

Markal

XLDnaute Nouveau
Re : Macro pour calculer la distance entre deux villes via google maps

Merci BrunoM45,
Je sais je fais mon difficile, mais du coup la feuille est trop "dotée" en information.
Je n'ai pas besoin d'itinéraire, de multi-itinéraires, de sauvegarde....
Le but étant d'intégrer ce calcul à une autre feuille déjà pourvue de maccro. (copie en pièce-jointe)
Je travaille dans un organisme de formation régional et les formateurs font des déplacements tous les jours.
Leur remboursement ce fait en fonction de leurs km déjà effectués et des cv de la voiture. pour ça j'ai réussi à le mettre en place et ne manque plus que ce calcul.
A l'heure actuelle je jongle entre un fichier excel de 28 000 lignes ( répertoriant tous les déplacements des intervenants), le site viamichelin et la calculatrice.
En tout cas j'apprends beaucoup grâce à des contributeurs comme vous qui n'hésitez pas à partager votre savoir.
Merci!!!
 

Pièces jointes

  • Test_1_km.xls
    56 KB · Affichages: 185
  • Test_1_km.xls
    56 KB · Affichages: 173
  • Test_1_km.xls
    56 KB · Affichages: 165

Rep76

XLDnaute Nouveau
Re : Macro pour calculer la distance entre deux villes via google maps

Bonjour,

je suis actuellement en train de développer un petit fichier excel et je cherche sur une des pages a pouvoir récupérer les données de google maps (distance) après avoir saisi mon point de départ et celui d'arrivée. J'arrive déjà a visualiser le parcours, mais je souhaiterais pouvoir récupérer la distance calculé par google maps..
quelle est la macro pour celà ? j'ai parcouru tout le fil de discussion mais je dois avouer que c'est trop compliqué pour moi arrivé à ce stade...

merci d'avance
 
C

Compte Supprimé 979

Guest
Re : Macro pour calculer la distance entre deux villes via google maps

Bonjour Francois62

Comme dis en MP, ce fichier utilise des ActiveX propres à Windows
Il faut utiliser le fichier via une VM (Marchine virtuelle) pour pouvoir l'utiliser sur Windows depuis son mac

Cordialement.
 

Discussions similaires

Réponses
3
Affichages
288

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260