Bonjour,

Je suis assez novice en VBA et je rencontre un problème avec la syntaxe de la fonction Range. J'ai écrit le code après avoir consulter pas mal de forum mais ca fonctionne pas.

l'objectif du code est de faire une RechercheV entre 2 feuille sauf que la plage de recherche est variable (en nombre de lignes).

Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'declaration des variables
Dim Resultat, DerLig As Variant
Dim Champ As Range
 
 
DerLig = ThisWorkbook.Sheets("Import").[B65000].End(xlUp).Row
 
        With ThisWorkbook.Sheets("Import")
         Set Champ = Sheets("Import").Range("B2:B" & DerLig)
        End With
 
For i = 2 To ThisWorkbook.Sheets("BD").[B65000].End(xlUp).Row
 
Resultat = Application.VLookup(ThisWorkbook.Sheets("Import").Cells(i, 2), Sheets("BD").Range(Champ), 1, False)
 
If Not IsError(Resultat) Then
MsgBox "Ligne a copier: " & i
End If
 
Next i
Si je remplace "DerLig" par un chiffre ça marche, autrement non!!

Merci d'avance pour votre aide.