Bonjour,

J'essaye de faire une macro qui ferai la chose suivante:

dans le "classeur1" , il y a des références en feuille "analysis" en colonne A
dans le "classeur2" , il y a des références en feuille "famille" en colonne A

Je souhaite parcourir toute les références présentes dans le classeur1 et chercher si la valeur existe dans le classeur2. Si elle n'existe pas dans le classeur2, alors je veux supprimer la ligne de la référence dans le classeur1.

je pense qu'il faut faire un find mais je ne maitrise pas très bien cette méthode alors j'ai testé avec une boucle: voici un début de code mais il y surement mieux.

Aussi je sais pas si c'est important mais il faut tester les références présentes dans le classeur1 et celles présente sont celles qui restent déjà après avoir filtrer pas mal de références. Il y a donc plusieurs filtres actifs pendant la recherche des références présentes dans le classeur1

Pouvez-vous m'aider svp?

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
21
22
23
24
25
26
27
28
29
30
31
32
Sub Recherche()
 
Application.ScreenUpdating = False
 
    Dim LigFin As Long
    Dim NumLot As Long
    Dim LigDeb As Long
    Dim lig As Long
    Dim LigNumLot As Long
 
     If ActiveSheet.AutoFilterMode = True Then
    ActiveSheet.AutoFilterMode = False
    End If
 
   LigFin = Sheets("analysis").Cells(Rows.Count, 1).End(xlUp).Row
   LigDeb = 2
 
 
 
    LigNumLot = 0
    For lig = LigDeb To LigFin
 
If Workbook("classeur1").Sheets("analysis").Cells(lig, 1).Value = Workbook("classeur2").Sheets("famille").Cells(lig, 1).Value Then
LigNumLot = lig
 
 
 
Workbook("classeur1").Worksheets("analysis").Cells(LigNumLot, 1).EntireRow.Delete
 
End If
Next lig
End Sub