Sub Reference()
Dim PlageFE_1 As Range
Dim PlageFE_2 As Range
Dim CelFE_1 As Range
Dim CelFE_2 As Range
Dim DerCel As Long
'défini les plages en colonne A de Feuil1 et Feuil2
With Worksheets("Feuil1")
Set PlageFE_1 = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
With Worksheets("Feuil2")
Set PlageFE_2 = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
'mémorise la dernière ligne occupée
DerCel = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
'boucle sur la plage en Feuil1 et recherche la valeur en Feuil2
'si pas trouvée, rajoute la ligne à Feuil2 puis colore (cellules non vides) en rouge
For Each CelFE_1 In PlageFE_1
Set CelFE_2 = PlageFE_2.Find(CelFE_1, , xlValues, xlWhole)
If CelFE_2 Is Nothing Then
DerCel = DerCel + 1
With Worksheets("Feuil2")
CelFE_1.EntireRow.Copy .Range("A" & DerCel)
.Range(.Cells(DerCel, 1), .Cells(DerCel, .Columns.Count).End(xlToLeft)).Interior.ColorIndex = 3
End With
End If
Next CelFE_1
'boucle sur la plage en Feuil2 et recherche la valeur en Feuil1
'si pas trouvée, colore la ligne (cellules non vides) en jaune
For Each CelFE_2 In PlageFE_2
Set CelFE_1 = PlageFE_1.Find(CelFE_2, , xlValues, xlWhole)
If CelFE_1 Is Nothing Then
With Worksheets("Feuil2")
.Range(.Cells(CelFE_2.Row, 1), .Cells(CelFE_2.Row, .Columns.Count).End(xlToLeft)).Interior.ColorIndex = 6
End With
End If
Next CelFE_2
End Sub