XL 2016 distance entre 2 villes/communes de France

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Je vous souhaite un très bon et beau WE :)

Je reviens pour un besoin de calculs de distances entre 2 villes
Mon besoin est :
- calculs uniquement en France.
- juste ville (sans adresse),

Ce sujet a été traité X fois sur le forum et ailleurs.
Mais il semble qu'avec google ça ne marche plus et le code que j'avais de Pierre (je crois LOL) ne fonctionne plus non plus.

Mes recherches sur le net n'ont pas abouti.

Quelqu'un aurait-il une solution avec Michelin peut-être ?

J'ai téléchargé un classeur qui semble fonctionner avec MapPoint mais je ne peux pas le tester car il me manque l'object "MapPoint.Application" et je ne sais pas comment l'intégrer.
Je joins également le classeur.

Je joins mon classeur
Avec mes remerciements,
amicalement,
arthour973,
 

Pièces jointes

  • Distances_Formules.xlsm
    22.9 KB · Affichages: 45
  • Outil MapPoint-Version1.xls
    402 KB · Affichages: 35
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel,

La solution lambda consiste à se doter d'une liste des communes avec les coordonnée géographiques du centre ville.

La distance entre 2 villes se calcule par une formule classique de trigonométrie (sphérique).

Bonne journée.
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard, le Forum;
Bon dimanche à toutes et à tous,

Merci encore une fois d"être là mais :
"formule classique de trigonométrie (sphérique)" ???
Je la connais de nom LOL mais jamais flirté avec cette bêcheuse et bien incapable d'entamer une quelconque relation avec elle :confused:

Je suis donc allé rechercher sur le net pour tenter de trouver des exemple sde classeurs excel utilisant ses services et je n'ai pas trouvé (peut-être ai-je mal cherché LOL)

Mais grâce à Pierre qui travaille beaucoup sur les données des communes de France, j'ai un fichier qui me sert pour trouver les communes autour d'une commune km 0 dans un rayon de km choisis.

Ce fichier (j'espère que Pierre ne m'en voudra pas de le joindre) contient les données géographiques gps de chaque ville.
Je joins le fichier de Pierre et ..... je continue de voir si je peux trouver' des exemple sur le net.
J'ai aussi un classeur' que j'avais fait il y a qq temps sous csv avec communes et données gps

Avec mes remerciements,
arthour973,
 

Pièces jointes

  • geoflar-communes-2016_light.txt
    3.6 MB · Affichages: 41
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonjour Gérard, le Forum;
Bon dimanche à toutes et à tous,

Merci encore une fois d"être là mais :
"formule classique de trigonométrie (sphérique)" ???
Je la connais de nom LOL mais jamais flirté avec cette bêcheuse et bien incapable d'entamer une quelconque relation avec elle :confused:
et je n'ai pas trouvé (peut-être ai-je mal cherché LOL...)
http://www.cpearson.com/Excel/latlong.aspx
VB:
The following VBA code will calculate a Great Circle Distance in either Kilometers or Miles (as specified in theResultAsMiles parameter -- True indicates Miles, False indicates Kilometers). The inputs may be either decimal degrees or time-format values. (Set the ValuesAsDecimalDegrees parameter to True for decimal degrees, False for Time degrees.)

Option Explicit
Private Const C_RADIUS_EARTH_KM As Double = 6370.97327862
Private Const C_RADIUS_EARTH_MI As Double = 3958.73926185
Private Const C_PI As Double = 3.14159265358979
Function GreatCircleDistance(Latitude1 As Double, Longitude1 As Double, _
            Latitude2 As Double, Longitude2 As Double, _
            ValuesAsDecimalDegrees As Boolean, _
            ResultAsMiles As Boolean) As Double
Dim Lat1 As Double, Lat2 As Double, Long1 As Double, Long2 As Double
Dim X As Long
Dim Delta As Double
If ValuesAsDecimalDegrees = True Then
X = 1
Else
X = 24
End If
' convert to decimal degrees
Lat1 = Latitude1 * X
Long1 = Longitude1 * X
Lat2 = Latitude2 * X
Long2 = Longitude2 * X
' convert to radians: radians = (degrees/180) * PI
Lat1 = (Lat1 / 180) * C_PI
Lat2 = (Lat2 / 180) * C_PI
Long1 = (Long1 / 180) * C_PI
Long2 = (Long2 / 180) * C_PI
' get the central spherical angle
Delta = ((2 * WorksheetFunction.Asin(Sqr((Sin((Lat1 - Lat2) / 2) ^ 2) + _
    Cos(Lat1) * Cos(Lat2) * (Sin((Long1 - Long2) / 2) ^ 2)))))
If ResultAsMiles = True Then
    GreatCircleDistance = Delta * C_RADIUS_EARTH_MI
Else
    GreatCircleDistance = Delta * C_RADIUS_EARTH_KM
End If
End Function
 
Dernière édition:

job75

XLDnaute Barbatruc
Pour la formule de trigonométrie il suffit de chercher un peu :

http://ressources.univ-lemans.fr/AccesLibre/UM/Pedago/physique/02/divers/trigospherique.html
La formule des cosinus permet de calculer simplement la distance entre deux points A et B sur la Terre en fonction de leurs latitudes et longitudes. Pour cela, on place C au pôle nord, de sorte que a est le complémentaire de la latitude ΦA de A, b le complémentaire de celle ΦB de B, et γ la différence de longitude dλ = λB − λA.
dAB = R.c = R.arccos[sin(ΦA).sin(ΦB) +cos(ΦA).cos(ΦB).cos(δλ)] (R = 6400 km est le rayon terrestre).
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Ce lien n'existe plus

Effectivement, j'avais mal cherché et pourtant j'ai cherché :confused:

Merci pour cette fonction ... je vais tester et je te dirai :)

Merci aussi Gérard pourtant j'ai cherché

Je vais voir tout ça et je reviens :)
amicalement,
Lionel,
 

Usine à gaz

XLDnaute Barbatruc
Pierre.jpg
Re-Pierre :)
encore merci pour ce que tu fais.
Mais il me semble que ça plante -cf image jointe :

Amicalement,
Lionel,
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Ce lien n'existe plus :)
Le Forum :)

Bonjour Pierre : effectivement ça marche en 32bytes :)
Mais si ça pouvait marcher en 64 ça m'arrangerait >LOL.

Merci Modeste pour avoir joint cette photo

Je suppose que je dois inclure cette formule "quelque part" LOL
Ou modifier un truc ?
Mais je ne vois pas où ?
Amicalement,
arthour973,
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour Ce lien n'existe plus,
J'ai fini par comprendre en prenant la fonction dans le précédent message et ça fonctionne.
Un grand merci :)

Je vais m'attaquer à la fonction de Pierre.
Un grand merci aussi pour tout ce que tu as fait :)
amicalement,
Lionel,
 

Discussions similaires

Statistiques des forums

Discussions
315 133
Messages
2 116 600
Membres
112 801
dernier inscrit
Yaz113