Salut,
voici, une solution à adapter à tes besoins... y'a surement plus court
N'oublie pas d'aller dans ta fenêtre VBA, Outils, Références et de cocher Microsoft Scripting Runtime
Sub test()
Dim Dico1 As Object, Dico2 As Object, derLig As Long, a As Long, b As Long, mm As Variant, nn As Variant
Set Dico1 = CreateObject("Scripting.Dictionary")
Set Dico2 = CreateObject("Scripting.Dictionary")
derLig = Range("A" & Rows.Count).End(xlUp).Row
Application.ScreenUpdating = False
For a = 2 To derLig
Dico1(Cells(a, 1).Value) = ""
Dico2(Cells(a, 3).Value) = ""
Next a
mm = Dico1.Keys
nn = Dico2.Keys
For a = 0 To Dico1.Count - 1
For b = 0 To Dico2.Count - 1
If mm(a) = nn(b) Then
Dico1(mm(a)) = 1
Dico2(nn(b)) = 1
Exit For
End If
Next b
Next a
For a = 0 To Dico1.Count - 1
If Dico1(mm(a)) = 1 Then
Range("E" & Rows.Count).End(xlUp).Offset(1, 0) = mm(a)
Else
Range("G" & Rows.Count).End(xlUp).Offset(1, 0) = mm(a)
End If
Next a
For a = 0 To Dico2.Count - 1
If Dico2(nn(a)) <> 1 Then Range("G" & Rows.Count).End(xlUp).Offset(1, 0) = nn(a)
Next a
Application.ScreenUpdating = True
End Sub