IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Faire des regroupements selon la distance entre des lieux


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2018
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Faire des regroupements selon la distance entre des lieux
    Bonjour,

    J'ai lu cette discussion.

    Super post et très utile cependant je rencontre un problème avec des coordonnées gps positives avec la solution de Mercatog
    lat long
    43,591816 3,872937
    43,591816 3,872937
    43,591816 3,872937
    43,591816 3,872937
    43,591908 3,872746

    j'ai l'impression que le probleme provient de la formule:

    DISTANCE = WorksheetFunction.Acos((Sin(Lat1) * Sin(Lat2)) + (Cos(Lat1) * Cos(Lat2) * Cos(Lon1 - Lon2))) * R

    test Regroupements selon distance.xlsm

    Si vous auriez une solution cela serait super.
    Merci pour votre travail en tout cas

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Problème de précision

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Function DISTANCE(ByVal i As Integer, ByVal j As Integer) As Double
    Dim Lat1 As Double, Lat2 As Double, Lon1 As Double, Lon2 As Double, Tmp As Double
    Const R As Integer = 6371                          ' de la terre, en km
     
    Lat1 = DEG2RAD(Tb(i, 2))
    Lon1 = DEG2RAD(Tb(i, 3))
    Lat2 = DEG2RAD(Tb(j, 2))
    Lon2 = DEG2RAD(Tb(j, 3))
    ' Calcul
    Tmp = (Sin(Lat1) * Sin(Lat2)) + (Cos(Lat1) * Cos(Lat2) * Cos(Lon1 - Lon2))
    If Abs(Tmp - 1) < 0.00000000000001 Then
        DISTANCE = 0
    Else
        DISTANCE = WorksheetFunction.Acos(Tmp) * R
    End If
    End Function
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    on peut avoir une idée du nombre de lignes maxi ?
    eric

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/03/2017, 09h01
  2. Calcul des distances entre des points
    Par orland dans le forum R
    Réponses: 1
    Dernier message: 08/10/2012, 13h49
  3. [XL-2010] Faire des regroupements selon la distance entre des lieux
    Par flicky dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 03/10/2012, 06h00
  4. Minimum de distance entre des geopoint sur map Android
    Par khaledfayala dans le forum Android
    Réponses: 1
    Dernier message: 23/02/2012, 09h51
  5. Réponses: 2
    Dernier message: 15/02/2010, 01h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo