Sub Compare()
Dim Dico As Object, Te(), N As Long, L As Long, X As String, Y(), Clé(), Itm(), Statut As Byte
Feuil3.Cells.Clear
Set Dico = CreateObject("Scripting.dictionary")
ReDim Y(1 To 2)
For N = 1 To 2
Te = Worksheets(N).UsedRange.Value
For L = 1 To UBound(Te)
X = Trim$(Te(L, 1)) & " " & Trim$(Te(L, 2))
If Dico.Exists(X) Then Y = Dico(X) Else Y(3 - N) = Empty
Y(N) = Te(L, 3): Dico(X) = Y: Next L, N
Clé = Dico.keys
Itm = Dico.items
For N = 0 To UBound(Clé)
Feuil3.[A:B].Rows(N + 1).Value = Split(Clé(N), " ")
Y = Itm(N)
If IsEmpty(Y(1)) Then
Feuil3.Cells(N + 1, "C").Value = Y(2)
Feuil3.Cells(N + 1, "D").Value = "Nouveau"
ElseIf IsEmpty(Y(2)) Then
Feuil3.Cells(N + 1, "C").Value = Y(1)
Feuil3.Cells(N + 1, "D").Value = "Disparu"
ElseIf Y(2) <> Y(1) Then
Feuil3.Cells(N + 1, "C").Value = Y(2)
Feuil3.Cells(N + 1, "D").Value = "Changé: " & IIf(Y(2) > Y(1), "+", "") & Y(2) - Y(1)
Else
Feuil3.Cells(N + 1, "C").Value = Y(2)
Feuil3.Cells(N + 1, "D").Value = "Commun": End If
Next N
End Sub