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

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

  • Classeurtest.xlsx
    9.8 KB · Affichages: 4

patricktoulon

XLDnaute Barbatruc
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


@+;)
 

erics83

XLDnaute Impliqué
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
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 326
Membres
102 862
dernier inscrit
Emma35400