bonjour,
Voici un lien qui date de plus de 15 ans mais qui n'a pas pris une ride !
http://forum.ruemontgallet.com/ruemontgallet/Programmation/vb-vba/comparaison-ligne-excel-sujet_2286...
Voir en particulier (vers le milieu ma réponse à Kevin66 qui traite exactement ce sujet.
EDIT : Récupération du code en question et adaptation (non vérifié) pour comparaison de 2 feuilles :
Sub CompareWS()
Dim iLRA%, iLRN%, i%, j%, k%
Dim Y As Boolean, Ys As Boolean
Dim TabloA(), TabloN()
Dim TWB As Workbook
Dim WsA As Worksheet, WsN As Worksheet
Set TWB = ThisWorkbook
'Détermination du nombre de ligne des feuillez "A" et "N"
Set WsA = TWB.Worksheets(1)
Set WsN = TWB.Worksheets(2)
iLRA = WsA.Cells(65535, 1).End(xlUp).Row
iLRN = WsN.Cells(65535, 1).End(xlUp).Row
TabloA() = WsA.Range("A1:A" & iLRA)
TabloN() = WsN.Range("A1:A" & iLRB)
'Détermination des absents
For i = 1 To UBound(TabloA)
For j = 1 To UBound(TabloN)
'Si égalité alors on pose un drapeau
If TabloN(j, 1) = TabloA(i, 1) Then
Y = True
'et on vérifie la ligne si c'est une égalité stricte
For k = 1 To 15
'si différence on pose un drapeau
If WsA.Cells(i, k) <> WsN.Cells(j, k) Then
Ys = True
'et on colore en orange
WsN.Cells(j, k).Interior.ColorIndex = 45
End If
Next
'sinon 1ere cellule en vert
WsN.Cells(j, 1).Interior.ColorIndex = IIf(Ys, 45, 4)
Ys = False
Exit For
End If
Next
'Si pas trouvé alors on colorie en rouge
If Not Y Then WsA.Range("A" & i).Interior.ColorIndex = 3
Y = False
Next
Set TWB = Nothing
Set WsA = Nothing
Set WsN = Nothing
End Sub
A+
Edit : Code corrigé pour tenir compte de la remarque de l'utilisateur.