Bonjour,
Voici un nouvel essai, cette fois avec une fonction personnalisée renvoyant une concaténation des résultats :
Function IndexConcat(rRenvoi As Range, vcherchee$, rCherche As Range) As String
tC = rCherche.Value
tR = rRenvoi.Value
Set dico = CreateObject("Scripting.Dictionary")
For i = LBound(tC) To UBound(tC)
If tC(i, 1) = vcherchee Then
If Not dico.exists(vcherchee) Then
dico(vcherchee) = tR(i, 1)
Else
dico(vcherchee) = dico(vcherchee) & " - " & tR(i, 1)
End If
End If
Next i
IndexConcat = dico(vcherchee)
End Function
Elle est à utiliser ainsi :
=IndexConcat(PlageValeursàRenvoyer;ValeurCherchee;PlageRecherche)
Un peu comme un INDEX EQUIV (mêmes paramètres quasiment) mais sans le EQUIV.
Pour 16000 lignes, je ne sais pas par contre ce que ça donnera... Je me dis qu'une macro serait préférable, ou peut-être une autre solution...