à méditer
Function fnEquiv(rEquiv As Range, vClef As Variant) As Variant
' Fonction EQUIV de Excel
Dim v As Variant
Dim vRet As String
v = Application.Match(vClef, rEquiv, 0)
If IsError(v) Then
vRet = "#N/A"
Else
vRet = v
End If
fnEquiv = vRet
End Function
Function fnIndex(rIndex As Range, vClef As Variant, iCol As Integer) As Variant
' Fonction INDEX de Excel
Dim v As Variant
Dim vRet As Variant
v = Application.Index(rIndex, vClef, iCol)
If IsArray(v) Then
vRet = "#N/A"
Else
vRet = v
End If
fnIndex = vRet
End Function
Function fnMatchIndex(rEquiv As Range, rIndex As Range, sClef As Variant, iCol As Integer) As String
' Fonction combinant les fonction EQUIV+INDEX de Excel
Dim v As Variant
Dim r As Variant
Dim vRet As String
If sClef <> "" Or sClef <> 0 Then
v = Application.Match(sClef, rEquiv, 0)
If IsError(v) Then
vRet = "#N/A"
Else
r = Application.Index(rIndex, v, iCol)
If IsArray(r) Then
vRet = "#N/A"
Else
vRet = r
End If
End If
fnMatchIndex = vRet
Else
fnMatchIndex = ""
End If
End Function
tu combines les deux et tu as un RechercheV
==> désormais conseil : ==> abandonnes le RechercheV et passe par le RechercheX dans tes formules.
La combinaison de mes deux fonctions te donnera le fonctionnement.... à un RechercheX où tu pourras attaquer la colonne que tu souhaites