XL 2019 Besoin d'aide calcul distance excel vba

mmaiga

XLDnaute Nouveau
Bonjour,

J'aurais besoin de votre aide. C'est à propos du calcul de la distance entre plusieurs coordonnées. Et faire trier de manière automatique les distances les plus proches parmis ces coordonnées. A savoir que les coordonnées ne sont pas ordonnées.

Vos suggestions seront les bien bienvenus.
Dans l'attente de votre retour
 

mmaiga

XLDnaute Nouveau
Merci @sylvanu pour ce retour rapide.

Vous trouverez ci-joint le fichier Excel.

L'idée est de trouver un doublon de PCI avec des cellules différentes dans un rayon de 15 km ou 20 km. La colonne B correspond à des cellules et la colonne D correspond aux valeurs de PCI suivi des coordonnées GPS . J'aimerais bien afficher dans la colonne E le doublon de PCI.

Si vous avez besoin de plus de précision je serais à votre disposition. J'espère que ma question a été claire..

Dans l'attente de votre retour...


A noter que j'ai enlevé quelques lignes car le fichier était trop volumineux.
 

Pièces jointes

  • PCI_doublon.xlsx
    153.9 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour mmaiga,
Rien compris. Désolé.
1- Dans votre fichier vous avez déjà beaucoup de doublons avec même latitude, même longitude.
Par ex lignes 5 et 6 : 35299_001-61 et 35299_001-81, ou encore ligne 7 et 8 : 49373_001-61 et 49373_001-81
Ils seront fatalement doublons.
2- De ce que j'ai compris, pour chaque point définit par Lat et Long de chaque ligne, on recherche les autres points distants de moins de 20km ?
Si c'est ça, ça va être très très long en temps de calcul.
Et que faire si on trouve plusieurs points distant de moins de 20km ?
3- Si c'est bien ça, il faut recourir au VBA, mais acceptez vous des macros VBA ?


NB: pour trouver une distance entre deux points définis par leur lat et long, il suffit de faire par ex dans votre fichier en I2:
VB:
=ACOS(SIN(RADIANS(F2))*SIN(RADIANS(F3))+COS(RADIANS(F2))*COS(RADIANS(F3))*COS(RADIANS(G2-G3)))*6371
qui donnera la distance entre 35299_001-51 et 50416_001-51, soit 117.774 km.
 

mmaiga

XLDnaute Nouveau
Bonjour mmaiga,
Rien compris. Désolé.
1- Dans votre fichier vous avez déjà beaucoup de doublons avec même latitude, même longitude.
Par ex lignes 5 et 6 : 35299_001-61 et 35299_001-81, ou encore ligne 7 et 8 : 49373_001-61 et 49373_001-81
Ils seront fatalement doublons.
2- De ce que j'ai compris, pour chaque point définit par Lat et Long de chaque ligne, on recherche les autres points distants de moins de 20km ?
Si c'est ça, ça va être très très long en temps de calcul.
Et que faire si on trouve plusieurs points distant de moins de 20km ?
3- Si c'est bien ça, il faut recourir au VBA, mais acceptez vous des macros VBA ?


NB: pour trouver une distance entre deux points définis par leur lat et long, il suffit de faire par ex dans votre fichier en I2:
VB:
=ACOS(SIN(RADIANS(F2))*SIN(RADIANS(F3))+COS(RADIANS(F2))*COS(RADIANS(F3))*COS(RADIANS(G2-G3)))*6371
qui donnera la distance entre 35299_001-51 et 50416_001-51, soit 117.774 km.
Bonjour Sylvanu,

Je vais éclaircir d'avantage. Pour les cellules 61 et 81 que vous venez de citer ils sont les même PCI dans ce cas en terme de stratégie (pas de doublon) idem pour le 62/82 et 63/83 de la même cellule. Ce que je cherche approximativement c'est d'avoir le même PCI avec des cellules différentes dans un rayon de 15 à 20 KM.

2. A propos de de ta question, oui ce que je cherche.
3. Un code VBA est la bienvenue.


J'aimerais avoir cette approche via ce fichier ci-joint. Si j'arrive à afficher les sites tels que les villes sont affiché ça sera parfait pour moi. Le reste je peux me débrouiller.

J'ai essayé de l'adapter avec mon cas, mais je n'arrive pas car il m'affiche des erreurs dans les calcules
 

Pièces jointes

  • Distances entre communes.xlsm
    86.8 KB · Affichages: 9

mmaiga

XLDnaute Nouveau
1671981239086.png




Voici le résultat. Les calculs ne sont pas correctes. Cette fois-ci je pris par site pour éviter d'avoir le doublon cette fois ci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'est le 3eme fichier différent. :mad: Donc trois fois le travail.
Pourquoi ne pas mettre le bon fichier et les bonnes explications dès le premier post ?
Je n'avais pas envie de repartir de 0, donc je suis reparti de mon fichier. Voir PJ.
Le temps d'exécution est autour de 5s sur mon PC.
J'ai rajouté dans le statusbar l'évolution des calculs, ainsi que le temps de calcul en G12.
 

Pièces jointes

  • Distances entre communes V2.xlsm
    515.7 KB · Affichages: 12

Discussions similaires

Réponses
3
Affichages
288

Statistiques des forums

Discussions
312 226
Messages
2 086 413
Membres
103 202
dernier inscrit
Claire2BM