bonjour a tous
je reviens un peu sur ma recherche multicritères et multi colonne

je sais obtenir le résultat de 3 valeurs trouvée sur une même ligne

mais je souhaiterais obtenir le numéros de cette ligne correspondante au 3 critères

celle ci donne la valeur de la colonne "D" correspondant au critères en colonne "A,B,C"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Sub test()
    criteres = Array("""truc""", """machin""", """chose""")
    ColonS = Array("A2:A20", "B2:B20", "C2:C20")
    MsgBox Evaluate("INDEX(D2:D20,MATCH(1,(" & ColonS(0) & "=" & criteres(0) & ")*(" & ColonS(1) & "=" & criteres(1) & ")*(" & ColonS(2) & "=" & criteres(2) & "),0))")
End Sub
des idées ?
edit:
j'ai bien celle ci qui me donne l'index par raport a la plage mais ca n'est pas l'index de ligne sauf si ma plage commence en A1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MsgBox Evaluate("MATCH(1,(" & ColonS(0) & "=" & criteres(0) & ")*(" & ColonS(1) & "=" & criteres(1) & ")*(" & ColonS(2) & "=" & criteres(2) & "),0)")
edit 2:
celle la est juste mais
y a t il quelque chose de plus simple ou le moyen d'intégrer l'offset du départ de la plage dans la formule

Code : Sélectionner tout - Visualiser dans une fenêtre à part
MsgBox Evaluate("MATCH(1,(" & colons(0) & "=" & criteres(0) & ")*(" & colons(1) & "=" & criteres(1) & ")*(" & colons(2) & "=" & criteres(2) & "),0)") + Range(colons(1)).Row - 1