Recherche chaîne de caractère à partir d'un tableau VBA

Bonjour à tous,

A partir d'un tableau contenant les coordonnées GPS de plusieurs villes, nous voulons calculer la distance entre les deux villes.

Nous disposons d'une base de données des villes de France avec leurs coordonnées (Latitude, Longitude) (voir capture1).

Nous aimerons créer un code VBA qui, lorsque le nom d'une ville de la base de données est affichée dans une cellule, ses coordonnées GPS s'affichent automatiquement dans les 2 colonnes de notre tableau (1 colonne pour la latitude et une pour la longitude).

Pourriez vous m'aider pour écrire ce code ?

Merci.

capture1 tableau villes

bonjour,

merci de mettre un classeur exemple représentatif, plutôt qu'une photo dont on ne peut rien faire. Solution possible via formule, tu veux vraiment du vba ?

Bonjour,

Un fichier "manipulable" serait nettement plus utile qu'une image...

Edit : salut h2so4, on est raccord !

Un essai :

10user4545.xlsx (9.33 Ko)

Formules (Lattitude, Longitude, Distance) :

=RECHERCHEV($C3;Tableau1;2;0)
=RECHERCHEV($C3;Tableau1;3;0)
=ACOS(SIN(RADIANS(D3))*SIN(RADIANS(D4))+COS(RADIANS(D3))*COS(RADIANS(D4))*COS(RADIANS(E3-E4)))*6371

Oui voici le fichier en pièce jointe (j'ai dû le mettre en binaire pour réduire la taille du fichier).

J'ai bien rempli la formule pour le calcul de distance, maintenant c'est le code vba pour faire afficher dans le tableau de la feuille CalculDistance les bonnes coordonnées à partir des deux villes renseignées qui me pose problème.

Merci.

J'ai bien rempli la formule pour le calcul de distance, maintenant c'est le code vba pour faire afficher dans le tableau de la feuille CalculDistance les bonnes coordonnées à partir des deux villes renseignées qui me pose problème.

Je ne vois pas l'intérêt de VBA pour une simple RECHERCHEV...

Si besoin, une adaptation des formules (à mettre dans le module de la feuille en question) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3:V4")) Is Nothing Then
    Range("D3") = Application.VLookUp(Range("C3"),Range("Tableau1"),2,0)
    Range("E3") = Application.VLookUp(Range("C3"),Range("Tableau1"),3,0)
    Range("D4") = Application.VLookUp(Range("C4"),Range("Tableau1"),2,0)
    Range("E4") = Application.VLookUp(Range("C4"),Range("Tableau1"),3,0)
End If
End Sub
Rechercher des sujets similaires à "recherche chaine caractere partir tableau vba"