Macro pour calculer la distance entre deux villes via google maps

hawkmoon

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

Bonjour à tous,

Je viens d'essayer sur 150 Itinéraires
Pas de problème

Aurais-tu eu une défaillance de ta liaison Web ?

A+
ok je vais essayer à partir d'une autre connexion, merci beaucoup!
 

ledzepfred

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

Bonsoir à tous,

ben là je dis chapeau!

J'avais bien pensé à un graphique nuage de point mais je ne voyais pas comment le superposer sur une carte (d'ailleurs j'ai pas compris comment tu as fait catrice!! mais comment-est ce que cela fonctionne-t-il?) d'où mon idée saugrenue de crée des zones de champ texte.
j'ai remarqué que dans le fichier il y avait des plages nommées coordonnes_ville, à quoi servent-elles?

Gruick : désolé j'avais pas capté ton allusion au batteur fou!

a+
 

JCGL

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

Bonjour à tous,
Salut Gruik,
Salut Catrice,

Tout comme LedZep, je dis BRAVO Catrice

Il est vrai qu'il y a un léger décalage sur les coordonnées mais est-ce vraiment important...

Tiré par les cheveux (cappilotracté...pour @Thierry) et pour LedZep :
Tu es une bonne âme de plante jaune à la page, bien que tu aies débuté vagabond

A++
A+ à tous
 

skun

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

Bonsoir à tous le fil et au forum

je viens voir le fichier de Catrice, je suis impressionné par ce travail, je ne pensait pas que excel permettait celà :eek:

vraiment c'est incroyable , félicitation !

j'aimerai savoir si ce programme pourrait etre adapter aux DOMTOM plus particulièrement l'ile de la réunion?

je vous remercie

salutation

skun
 

Catrice

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

Bonsoir,

@ skun, oui on peut surement l'adapter aux DOM.
Il faut une carte de la Reunion (facile)
Une base qui donne les coordonnées GPS des villes que tu souhaites gérer (moins facile)

@ ledzepfred, pour la carte, il suffit d'aller dans Motif/Motif et textures/Images et d'inserer.
Les plages nommées ne servent qu'à rendre le graphique dynamique. Il met autant de points (villes) qu'il y a de lignes dans DataCarte.
Pour afficher les étiquettes (c'est une astuce vue dans un fil de CB60 si je ne me trompe pas), on applique un format/nombre avec le nom de la ville et on demande à afficher les Labels X sur le graphique.
Le pb (à tester) c'est que ça va doper le fichier en formats nombres. Il faut que je vois pour les effacer au fur et à mesure.
Autre petit point, il faut rajouter des "-" sur les noms de villes composés (d'ou l'obligation de les saisir avec des espaces) http://www.galichon.com/codesgeo/ les transforme avec des "-".
Enfin, je teste le separateur decimal car http://www.galichon.com/codesgeo/ recupere les coordonnees avec des ".".
C'est un peu usine à gaz car le replace classique bug (sur XL 2002 en tous les cas) avec les nb du type 60.633333. Trop de decimales = suppression du . au lieu du remplacement :(

Voila
Y a pas grand chose en fin de compte ;)
 
Dernière édition:

Gruick

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

Bonjour,

Je me suis amusé à rendre Macintoshable tout ça, sans le Split, et autres instructions genre CDbl qui existe mais que je ne connais pas. J'ai encore quelques surprises quand je cherche Paris, il me trouve Paris évidemment, mais me recopie Cormeilles-en-Parisis, le premier de la liste. Pas bien grave. Je vais zieuter ça.

Même aventure sur XL2004 Mac pour les décimales nombreuses, mais ça marche si on prend les "valeurs" une par une, et qu'on fait un CNUM. Ca donne un code archaïque, pas trouvé mieux, mais le temps me manque.
Code:
For Each Y In ZoneReplace
      Y.Offset(0, 2).FormulaR1C1 = "=REPLACE(RC[-2],SEARCH(""."",RC[-2]),1,"","")"
      Application.CutCopyMode = False
      Y.Offset(0, 2).Copy
      Y.Offset(0, 2).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
      Y.FormulaR1C1 = "=VALUE(RC[2])"
      Y.Copy
      Y.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
      Y.Offset(0, 2).ClearContents
    Next
qui remplacera la boucle initiale chez moi.

En revanche, je vais vous donner le truc pour éviter de créer des formats de nombres pour faire apparaître les noms des villes sur la carte. (Parce-que ça peut être encombrant à force, et il faut nettoyer, sinon ça reste).
Voici donc le bout de macro
Code:
NbValeurs = Sheets("DataCarte").Range("A65536").End(xlUp).Row - 1
Sheets("Distances").ChartObjects("Graphique 4").Activate
Dim Etiq()
For i = 1 To NbValeurs
    ReDim Preserve Etiq(i)
    Etiq(i) = Sheets("DataCarte").Cells(i + 1, 1)
    ActiveChart.SeriesCollection(1).Points(i).DataLabel.Characters.Text = Etiq(i)
Next i
Ouf, j'ai pu servir à quelque chose...:D

Encore bravo Catrice, je suis toujours aussi admiratif.

Gruick, grand voyageur
 

Catrice

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

Hello Gruick,

Effectivement, c'est beaucoup mieux comme ça.
J'étais resté sur la solution des formats qui ne necessitait pas de macro (dans l'exemple d'origine) mais là étant donné qu'on a du code pourquoi s'en priver ...
Merci

Pour les recherche Paris, tu n'a pas un pb XlWhole et xlPart ?

Un vrai galere l'histoire du point et de la virgule ...
 
Dernière édition:

julien974

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

Bonjour,

Alors là les amis, vous avez trouvé quelque chose de vraiment intéressant!!!

J'aimerai bien appliquer cela pour les temps de conduite des chauffeurs poids lourds! Estimer combien de temps il faut pour un camion pour effectuer ses livraisons.

On a simplement besoin du nombre de km à parcourir entre deux villes, la vitesse moyenne du camion en km par heure et d'insérer dans tout ça les temps de pause obligatoires, les temps moyens de déchargement,…

Ainsi je pourrai simuler par exemple un trajet :

Rennes >> Nantes >> Bordeaux >> Agen

Vous pensez que ceci peut être possible ???

Si oui, dites le moi et je vous envoie tous les éléments,

Bien cordialement,

Julien974
 

Gruick

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

Re,

Je viens de me rendre compte que des fois, XL me transforme les données galichonesques en nombre sans que je lui demande d'où test supplémentaire.
Code:
If IsNumeric(Y) Then GoTo re
, avec le re: juste avant le Y.Offset(0, 2).ClearContents.

Pour les traits d'union, j'ai fait l'inverse de toi, une fois les coordonnées acquises, et je compare avec le nom de la ville de la feuille "Distances", mais avec une boucle.
J'aurai pu faire avec un .find,
Code:
ville = Sheets("Req2").Cells.Find(What:=X, lookat:=xlWhole)
mais je ne sais pas quoi faire une fois repérée, je ne peux que faire un msgbox pour vérifier, mais ni copier, ni sélectionner.
C'est ça qui m'enquiquine avec le .find, rapide mais je sais à peine m'en servir.

Pour la carte, vu que les méridiens ne sont pas parallèles;), l'écart est plus étroit au nord qu'au sud, et ça me met donc Saint Jean de Luz un peu à l'intérieur des terres. Comment anamorphoser si possible légèrement la carte ?

Voilà Catrice, c'est proche du parfait, surtout grâce à toi.

Gruick
 

Catrice

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

julien974,

ci-joint une utilisation directe du fichier qui permet de faire un itineraire.
Tu peux ensuite greffer tous les calculs que tu souhaites.
Par etape, duree total, temps moyen etc ...

http://cjoint.com/?lhmHYLrGux

Gruick,
Utilise plutot
Set ville = Sheets("Req2").Cells.Find(What:=X, lookat:=xlWhole)
Ville devient un objet sur lequel tu peux faire un .Offset, un .Value, un .Address un .Select etc ...
 
Dernière édition:

Eric 45

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

Bonjour à tous

Je suis ce fil depuis le début et je dis "chapeau"

J'ai fais quelques tests, et sur 1 il y a un petit bug. En faisant : Paris, Laval, Rennes, Lorient, nous trouvons 726 km entre Laval et Rennes, je pense que ce résultat est erroné :confused:

Merci pour ce travail

Eric
 

JCGL

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

Bonjour à tous,
Salut Fred et Ric,

Il s'agit de Laval sur Vologne dans les Vosges, je crois
Rentre le code postal et c'est tout bon (53000)

A+
 

Gruick

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

Bonjour JCGL,

Méfiance avec les Codes Postaux, car dans l'Aisne, il y a 11 communes qui ont le n° 02100. L'ordinateur commence alors à fumer par derrière...
Si on veut s'en servir après pour la carte on est foutu, il faut remettre le nom de la ville. (et là Laval est bien placé !)
Mettre d'ailleurs une Apostrophe devant les CP avant 10000 sinon l'ordinateur va au Danemark pour 2100

En parlant d'apostrophe, je suis embêté avec Les Sables d'Olonne, dont on parlera dimanche je crois. Pour la partie carte, il faut la chercher sans l'apostrophe, et le site la met, alors qu'il n'en voulait pas !!!
Et il fait la même chose pour les accents. (essais faits avec Le Pré Saint Gervais et Nîmes). Je crains qu'un sous-programme ne soit nécessaire. M'en fous, j'aime ça.

Ah ces machines !!!! Vive la France quand-même.

Gruick qui patauge dans son lisier...
 

platina

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

Bravo a tous effectivement !

Une dernière question catrice: tout comme il y a les kms tout seuls dans une colonne (pratique pour faire des calculs après!), peut tu me faire une version avec les temps de parcours tout seuls pour que je puisse également les sommer, faire des moyennes... J'ai essayé d'adapter ton programme VBA mais à cause du S à heureS dès que le trajet dépasse une heure, cela ne fonctionne pas !

Je suis sure que tu pourras m'aider !

Encore merci !
 

ledzepfred

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

bonsoir,
merci à JCGL pour la petite citation..

à Catrice pour l'excellence de son travail (comme d'hab) et les explications

à gruick pour ses posts toujours rock'n'roll et sa bonne humeur (comme d'hab aussi)

à platina pour sa question initiale.
et à ceux à qui j'ai pas dit merci ...

le tout dans le désordre ...

A+

(promis je suis pas le Michel Drucker du forum)
 

dirmon

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

Bonjour à tous,

Un sujet super interessant pour un projet en cours.

Catrice, jai essayé ton fichier itineraire6 et j'ai une erreur :

parametre invalide en me soulignant la phrase :

Sheets("Distances").ChartObjects("Graphique 4").Chart.SeriesCollection(1).Points(i).DataLabel.Text = X.Value

Merci pour votre aide
 

MJ13

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

Bonjour à tous

Bravo à tous les participants, c'est ce le genre de sujet que j'apprécie sur XLD.

J'ai testé quelques fichier de Catrice qui sont très bien, et je ne trouvais pas d'itinéraire si il y avait plusieurs villes avec le même nom.

Par contre en mettant:
Le nom de la ville,le nom du département
La il le trouve (attention peut-être à la syntaxe, il faut surement le mettre come Google nous le propose).

Alors merci pour cet application.

Peut-être a mettre une fois finalisée dans la zone téléchargement.
 

Roland_M

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

bonjour à tous !

ci-joint un petit classeur que j'ai fait pour l'occasion !

il charge toutes les communes de france ! (charge sur Communes de France : accueil)
dans 95 feuilles de 01 à 95 (départements )
mise en page entièrement automatique !
il suffit de cliquer Exécuter macro > ChargerLesVilles
et d'attendre que ça se passe !

imaginez le travail de força que ça pourrait représenter manuellement !
 

Fichiers joints

MJ13

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

Bonjour

Merci beaucoup Roland de mettre ta pierre à l'édifice. En plus c'est très rapide.

Je garde ton fichier sous le coude.

Par contre ce serait bien aussi d'avoir les positions GPS.
 

Discussions similaires


Haut Bas