XL 2013 identification dernière référence d'une famille

  • Initiateur de la discussion Initiateur de la discussion erics83
  • Date de début Date de début

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 !

erics83

XLDnaute Impliqué
Bonjour,

J'ai un classeur avec des noms et des références. Ces références sont par familles (A,B,C,D). Je cherche à : lorsque je tape une référence (ici en H12), que le code cherche dans chaque ligne, "regarde" si la référence existe et si oui, regarde si c'est la "dernière" référence de la nomentlature.
Dans mon exemple : nom3 apparait car A001 (la référence recherchée) est la "dernière" référence dans la famille A, par contre, Nom9 (et 10) n'apparaissent pas car A001 n'est pas la "dernière" référence de la famille (A002 pour Nom9 et A009 pour Nom10)

J'aimerai passer par un code VBA, mais je ne sais pas trop comment m'y prendre....

Merci pour votre aide,
Eric,

1659947975683.png
 

Pièces jointes

bonjour à tous
allez a mon tour juste en passant et on va faire simple 😉
testez ceci
colle ceci dans un module
VB:
Function listeNomByref(rng As Range, valeur$)
     Dim tr, t, i&, a&
     tr = rng.Value
   ReDim t(1 To 65535, 1 To 1) As String
    For i = 1 To UBound(tr)
         If "," & tr(i, 2) & "," Like "*," & valeur & ",*" Then a = a + 1: t(a, 1) = tr(i, 1)
    Next
     listeNomByref = t
End Function
sélectionne ta plage ou tu veux ton résultat la quantité de ligne que veux a hauteur de 6535 lignes max
dans ta barre de formule tape =listeNomByref(A1:B14;H12)
et valide en matricielle et terminé

voir démo ci dessous
demo.gif


@+😉
 
bonjour à tous
allez a mon tour juste en passant et on va faire simple 😉
testez ceci
colle ceci dans un module
VB:
Function listeNomByref(rng As Range, valeur$)
     Dim tr, t, i&, a&
     tr = rng.Value
   ReDim t(1 To 65535, 1 To 1) As String
    For i = 1 To UBound(tr)
         If "," & tr(i, 2) & "," Like "*," & valeur & ",*" Then a = a + 1: t(a, 1) = tr(i, 1)
    Next
     listeNomByref = t
End Function
sélectionne ta plage ou tu veux ton résultat la quantité de ligne que veux a hauteur de 6535 lignes max
dans ta barre de formule tape =listeNomByref(A1:B14;H12)
et valide en matricielle et terminé

voir démo ci dessous
Regarde la pièce jointe 1147003

@+😉
Super Merci patricktoulon, effectivement une autre solution qui fonctionne très bien !!!

Merci pour ton aide,
Eric
 
- 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
Retour