Problème Vlookup - Sortie "Erreur 2042"
Y
Bonjour forum,
Je veux tester l'existence d'une concatenation dans un plage donne.
Dans mon Public Sub:
Dim NomClasseur as string
NomClasseur = "Projet_essai"
Dim F1 As Worksheet
Dim F2 As Worksheet
Dim DernLignef1 As Integer, DernColonnef1 As Integer, DernLignef2 As Integer
Set F1 = Workbooks(NomClasseur).Worksheets("Donnees")
Set F2 = Workbooks(NomClasseur).Worksheets("Matrice")
Set concat = F1.Range("A2").End(xlToRight)
DernLignef1 = F1.Range("A" & Rows.Count).End(xlUp).Row
DernColonnef1 = F1.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
col = F1.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
DernLignef2 = F2.Range("B" & Rows.Count).End(xlUp).Row
Set MaPlagef1 = Range(F1.Cells(1, 1), F1.Cells(DernLignef1, DernColonnef1))
With F2
Set concat = F1.Range("A1")
For Each c In Range(F2.Range("C1"), F2.Range("C1").End(xlToRight))
For Each D In F2.Range("A2:A" & DernLignef2)
If concatener3(D, D.Offset(, 1), c) = concat.Value Then
'F2.Cells(d.Row, c.Column).Value = Application.VLookup(concat.Value, MaPlagef1, col, False)
F2.Cells(D.Row, c.Column).Value = RechercheV(concat.Value, MaPlagef1, col)
Else: F2.Cells(D.Row, c.Column).Value = 0
End If
Set concat = concat.Offset(1)
Next D
Next c
concat.EntireColumn.Delete
End WithDans ma fonction
Public Function RechercheV(cible As Variant, Plage As Range, col As Integer) As Variant
Dim res As Variant
res = Application.VLookup(cible, Plage, col, False)
RechercheV = res
End FunctionL'exécution me donne des "#NA" et lorsque je parcours le code ligne par ligne dans la fonction rechercheV, je vois Res= "Erreur 2042".
Je ne comprends pas pourquoi. D'autant que lorsque je le fais à la main dans excel (hors VBA), il m'affiche les bonne valeurs.
Auriez vous une idée?
or