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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Sub CompareReference
Dim WB1 as workbook
Dim WB2 as workbook
Dim RG1 as Range
Dim RG2 as Range
Dim Cel as Range
Dim LastLine1 as single
Dim LastLine2 as single
Dim MyDico as Object
Set WB1 = Workbooks("classeur1")
Set WB2 = Workbooks("classeur2")
'Définit les deux classeurs
LastLine1 = WB1.Worksheets("analysis").Columns(1).Find("*", , , , xlByRows, xlPrevious).Row
LastLine2 = WB2.Worksheets("famille").Columns(1).Find("*", , , , xlByRows, xlPrevious).Row
'Calcul de la dernière ligne utilisé
With WB1.Worksheets("analysis")
Set RG1 = .Range(.Cells(1, 1), .Cells(LastLine1, 1))
End With
'Définit la plage de référence du classeur 1
With WB2.Worksheets("famille")
Set RG2 = .Range(.Cells(1, 1), .Cells(LastLine2, 1))
End with
'Définit la plage de référence du classeur 2
Set MyDico = CreateObject("Scripting.Dictionary")
'Création du dictionnaire
For Each Cel in RG2
MyDico.add Cel.Value, Cel.Value
Next Cel
'Remplis le dico avec les référence du classeur 2
For Each Cel in RG1
If MyDico.Exists(Cel.Value) = False then
WB1.Worksheets("analysis").Cells(Cel.Row, 1).EntireRow.Delete
End if
Next Cel
'On regarde dans le Dico si les valeurs existent. Si elles n'existent pas, on supprime la ligne dans le classeur 1
Set MyDico = Nothing
'On Libère la variable
End Sub |
Partager