Trouver la position dans une liste déroulante (validation de données)

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 !

BenHarber

XLDnaute Occasionnel
Bonjour le Forum,
Je souhaiterais avoir le code VBA qui me retourne le n° de ligne du choix que je fais dans une cellule, à partir d'une liste validation de donnée qui est située sur une autre feuille (autrement dit, il me semble que je recherche un peu un peu l'équivalent du 'Listindex' d'un Usf).
Est-ce possible ?

Merci d'avance pour vos idées et suggestions.

Cordialement,

BenHarber
 
Re : Trouver la position dans une liste déroulante (validation de données)

Bonjour JB,
Merci pour ta réponse : le code fonctionne...mais lorsque j'ai des homonymes dans la liste déroulante (hé oui ! ca arrive quelquefois : par exemple 2 Durand), et que je choisis le 2ème, le code me renvoie alors le chiffre correspondant à la ligne du 1er !! (c'est d'ailleurs la raison pour laquelle je souhaite avoir la position dans la liste).

Avez vous une autre suggestion ?

Peut-être n'y a-t-il pas de solution à mon problème ?
 
Dernière édition:
Re : Trouver la position dans une liste déroulante (validation de données)

Bonjour Le Forum,
Je me permets de relancer la question posée samedi...mais peut-être n'y a-t-il aucune solution à mon problème ?...
Merci d'avance si vous avez des suggestions.
 
Re : Trouver la position dans une liste déroulante (validation de données)

Bonjour Pierrot,
Effectivement, j'y ai pensé...Mais je veux éviter de placer un objet supplémentaire sur la feuille car je travail sur un fichier que je vais envoyer à plusieurs utilisateurs et il y a toujours, selon la version installée sur postes, des aléas de fonctionnement...
Avec une liste de validation, je me dis que je cours moins de risque.
Mais bon : il n'y a peut-être pas de solution dans cette direction.

Merci quand même !
 
Re : Trouver la position dans une liste déroulante (validation de données)

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$2" Then
    Set c = [liste].Find(Target, LookAt:=xlWhole)
    If Not c Is Nothing Then
      premier = c.Address
      Do
        MsgBox c.Row - [liste].Row + 1
        Set c = [liste].FindNext(c)
      Loop While Not c Is Nothing And c.Address <> premier
    End If
  End If
End Sub

JB
 
Dernière édition:
Re : Trouver la position dans une liste déroulante (validation de données)

Re,

@JB
sauf erreur il me semble que ton code renvoie toutes les positions de la valeur dans la liste, mais pas celle "cliquée", perso j'avais compris qu'il fallait déterminer uniquement le rang de la valeur choise... peut être quelque chose m'a échappé...
Bon après midi
@+
 
Re : Trouver la position dans une liste déroulante (validation de données)

Pour clore le sujet, je précise que j'ai choisi la solution de Pierrot, à savoir modifier la source de la liste déroulante : celle-ci pointe désormais sur une zone dont les cellules contiennent NOM + Prénom (+ une clé de façon à éviter les homonymies totales du type des "Yves Martin"...).
Cela m'a contraint à modifier la structure de ma base et adapter mes macros, mais je pense qu'il n'y avait pas d'autres solutions.

Merci encore pour vos conseils !

Cordialement,
 
- 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

Discussions similaires

Retour