Microsoft 365 VBA RechercheV

Boubie

XLDnaute Junior
Bonjour à tous,

Je cherche à faire une RecherheV en B2 de mon onglet BDD et ensuite dupliquer cette formule via une macro.
Cette formule doit se répéter sur différentes colonnes

Quelqu'un peut il m'aider , svp? Merci d'avance.

Ci-joint mon fichier pour exemple.
 

Pièces jointes

  • VBA rechercheV.xlsx
    15.5 KB · Affichages: 8

oguruma

XLDnaute Occasionnel
à 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 :)
 

Statistiques des forums

Discussions
314 588
Messages
2 110 987
Membres
111 001
dernier inscrit
hma22