Calcul distance par Orthodromie

  • Initiateur de la discussion Initiateur de la discussion touwhite
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

touwhite

XLDnaute Nouveau
Bonjour à tous,
J'essaie de mettre en place un petit programme permettant de calculer les distances à vol d'oiseau entre différentes villes.
J'ai rentré leur latitude-longitude en degré décimaux et je réalise un calcul par la principe d'orthodromie.
Seulement, le résultat et donc la distance entre deux villes est de l'ordre de -9000 Km pour des distances réelles allant de 20 à 250 Km ...
Si quelqu'un peut jeter un coup d'oeil, là je bloque.
Merci d'avance
Cordialement
 
Dernière édition:
Re : Calcul distance par Orthodromie

@ James, Merci mais je ne comprends pas tellement le programme puisque la formule est directement inséré dans le tableur excel c'est ca ?
@ Victor, les formules sont dans le développeur. Le tableur me sert simplement pour ranger les valeurs et les voir lorsque je lance l'IHM. A terme, le tableur ne devrait me servir à rien.

Merci à vous.
 
Re : Calcul distance par Orthodromie

Excuse moi, le programme est fait à partir de VBA. Mes codes sont donc dans l'onglet dévellopeur de excel.
Ce que j'appel IHM est un Interface Homme Machine, c'est tout simplement une fenetre qui va s'afficher, demandant à l'utilisateur de selectionner ces villes de départ et arrivée et afficher la distance. L'utilisateur n'aura pas accès au code ni au tableau excel.
 
Re : Calcul distance par Orthodromie

Bonjour à tous
Je ne lis pas les fichiers .xlsquelquechose (Excel2003 oblige).
À tout hasard, une petite fonction :
VB:
Public Function OrthoD#(Lat1#, Lat2#, Lon1#, Lon2#)
  Const R As Integer = 6371 'Rayon terrestre approximatif en km (assimilation du géoïde à une sphère de rayon R).
   Const DR = 1.74532925199433E-02 '1° en radians
   On Error Resume Next 'En cas d'erreur, la fonction revoie zéro.
   OrthoD = R * WorksheetFunction.Acos(Cos(Lat2 * DR) * Cos(Lat1 * DR) * Cos((Lon2 - Lon1) * DR) + Sin(Lat2 * DR) * Sin(Lat1 * DR))
End Function

Distance orthodromique approximative de deux points repérés par leurs coordonnées (latitude, longitude) en degrés :
Code:
=OrthoD(latitude_1;latitude_2;longitude_1;longitude_2)
ROGER2327
#5005


Dimanche 8 Pédale 138 (La machine à inspirer l'amour, ST)
12 Ventôse An CCXIX
2011-W09-3T14:46:13Z
 
Dernière édition:
Re : Calcul distance par Orthodromie

Bonjour à tous,

Tu postes un fichier ... rempli de vides ... et comme le dit Victor ... il faudrait que l'on devine .... que tu utilises déjà la fonction personnalisée de Roger2327... !!!! 😕 😕

A+
🙂
 
Re : Calcul distance par Orthodromie

Re…
Si notre ami parle de la fonction en VB qu'on trouve dans le fichier joint au message #2, je dis que cette fonction n'a rien à voir avec celle que je propose.
On y trouve notamment une division par Sqr(a) qui provoquera une erreur chaque fois que a prendra la valeur zéro. Par exemple quand les deux points sont confondus (i.e. à distance nulle l'un de l'autre), ce qui est un peu gênant.
Cette formule est hautement fantaisiste, à moins qu'elle s'applique à autre chose qu'aux coordonnées terrestres de deux points.
(Le fait qu'elle soit commentée en ricain n'apporte rien.)
ROGER2327
#5006


Dimanche 8 Pédale 138 (La machine à inspirer l'amour, ST)
12 Ventôse An CCXIX
2011-W09-3T15:43:14Z
 
Re : Calcul distance par Orthodromie

Alors la je ne vous suis plus...
Mon code est dans l'onglet développeur, puisque je n'est aucune formule dans le tableur.
J'utilise VBA.
J'ai déja integré la formule proposé par Roger2327 puisqu'il s'agit de la formule permettant de calculer une distance entre deux points d'une sphère .

@ James, je ne vois pas pourquoi tu parle de fichier vide puisque j'ai joint mon programme.
 
Re : Calcul distance par Orthodromie

Re...
Je parlais du classeur TestDistanceVille.xls accompagnant le message #2 de James007.
Je l'ai sous les yeux et j'y trouve une feuille unique, nommée Sheet1.
Ouvrant l'éditeur VisualBasic, je trouve une fonction nommée HaversineDistance qui n'a rien à voir avec la fonction OrthoD que je proposais plus haut.
Je ne sais pas ce qu'il y a dans le classeur Projet VBA Trajet V01.xlsm du message #1. Peut-être est-ce la source du malentendu...
ROGER2327
#5007


Dimanche 8 Pédale 138 (La machine à inspirer l'amour, ST)
12 Ventôse An CCXIX
2011-W09-3T17:06:15Z
 
Re : Calcul distance par Orthodromie

Re...
Merci, JCGL !
Je comprends mieux.
C'est le calcul de l'arc-cosinus qui est folklorique.
Je propose
VB:
Private Function ACos(X As Double) As Double
    If X Then ACos = Atn(Sqr(-X * X + 1) / X) - 4 * Atn(1) * (X < 0) Else ACos = 2 * Atn(1)
End Function
qui renvoie une valeur entre 0 et Pi.​
ROGER2327
#5009


Dimanche 8 Pédale 138 (La machine à inspirer l'amour, ST)
12 Ventôse An CCXIX
2011-W09-3T17:57:49Z
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour