XL 2010 Recherche - marquage de données proches d'une série de référence

gosselien

XLDnaute Barbatruc
Bonjour,

Je dois avouer que je n'utilise quasi plus excel et là je tente de faire une formule ou une mise en forme condi:

J'ai une colonne de longitudes (+/-1500 lignes) et des longitudes de référence (25 lignes)
(Pareil pour les latitudes)
Comment marquer celles des 1500 qui se rapprochent +/- des 25 de référence soit en format condi, soit en écrivant un vrai ou un "1" à côté de celles qui correspondent.

L'âge n'arrangeant rien en plus du manque d'utilisation depuis 3 ans font que je patauge...

Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Gosselein,
Vous n'auriez pas un petit fichier test ?
En particulier pour voir comment sont notées vos longitudes, si ce sont des nombres ou des chaines de caractères ....
Et donnez nous la tolérance que vous acceptez pour compter les proximités.
Dans le pire cas ( chaines de caractères ) ça va pas être coton.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un essai en PJ mais je ne sais pas si les résultat sont cohérents.
J'ai utilisé la formule ( http://villemin.gerard.free.fr/aGeograp/Distance.htm ) :
Dist=6371*acos(sin(Lat1)sin(Lat2)+cos(Lat1)cos(Lat2)cos(Long2-Long1))
et le code :
VB:
Sub CalculD()
' Dist=6371*acos(sin(Lat1)sin(Lat2)+cos(Lat1)cos(Lat2)cos(Long2-Long1))
Dim PI, i%, j%, Lon, Lat, Dist
Application.ScreenUpdating = False
PI = Application.PI()
Coord = Range("B2:C" & Range("B65500").End(xlUp).Row)
Coordref = Range("I3:J" & Range("I65500").End(xlUp).Row)
For i = 1 To UBound(Coord)
    Lon = 2 * PI * Coord(i, 1) / 360: Lat = 2 * PI * Coord(i, 2) / 360: DistMin = 9 ^ 9
    For j = 1 To UBound(Coordref)
        Dist = 6371 * Application.Acos(Sin(Lat) * Sin(2 * PI * Coordref(j, 2) / 360) + Cos(Lat) * Cos(2 * PI * Coordref(j, 2) / 360) * Cos(Lon - 2 * PI * Coordref(j, 1) / 360))
        If Dist < DistMin Then
            DistMin = Dist
            IndexP = j
        End If
    Next j
    Cells(i + 1, "D") = Coordref(IndexP, 1)
    Cells(i + 1, "E") = Coordref(IndexP, 2)
    Cells(i + 1, "F") = DistMin
Next i
End Sub
qui se rapprochent +/- des 25 de référence
Comme cette phrase ne veut rien dire en termes mathématiques, pour chaque point je met le point ref le plus proche ainsi que la distance.
Si les résultats sont aberrants, donnez un ordre de grandeur.
 

Pièces jointes

  • Exemple de coordonnées recherchées Oups.xlsm
    20 KB · Affichages: 6
Dernière édition:

gosselien

XLDnaute Barbatruc
J'ai regardé mais ce n'est pas ça, je me suis peut être (certainement) mal exprimé:

Les 25 coordonnées de référence sont en Belgique ou très proche d'une frontière donc dans les 1500 que j'ai, je voudrais colorer ou marquer celles qui se trouvent dans ces références.
J'ai ceci par exemple :

40.37758, 16.44127 ne doit pas être marqué pas en Belgique (pas dans les colonnes à gauche de mon exemple mais il suffit de les ajouter )

49.63983, 5.34753 doit être marqué en Belgique
Il faut peut être concaténer les 2 champs pour faire la comparaison ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Comment savoir si un point à X km d'une référence est en Belgique ou non ?
Et donnez nous la tolérance que vous acceptez pour compter les proximités.
Au post #2 j'avais posé cette question, sans réponse.

Donc je ne vois pas de solution. J'ai dans le fichier 7 distances inférieures à 10km. Sont ils en Belgique ou non ? Il est impossible de le savoir car longitudes et latitudes se fichent pas mal de nos petites frontières humaines.
 

gosselien

XLDnaute Barbatruc
Si on prend ceci 51.0712,2.4838 on est proche de Bray-Dunes donc OK
Si on prend ceci 50.890112 2.12982, on est trop loin

Ces 25 coordonnées de référence sont toutes en Belgique où juste proches de la frontière
Pour la tolérance on peut être à 5-10 km oui
Mais il faut marquer celles qui sont proches des références dans cette liste de gauche

Pour faire ma liste à droite, j'ai pris des coordonnées dans ce site

 

Statistiques des forums

Discussions
314 499
Messages
2 110 247
Membres
110 711
dernier inscrit
chmessi