Comparaison de deux tableaux et extraction de valeurs

Bonjour à tous,

J'aimerais comparer deux tableaux et faire ressortir les valeurs en double à part et ceux de différents à part.

Merci d'avance.

54comparaison.xlsm (15.43 Ko)

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

Bonsoir @ tous,

Salut Apt, Salut Game Over...

Par formules.

@ + +

Bonjour Game Over, Rachid,

Merci pour vos deux solutions.

Rachid :: Peut-on appliquer ces formules si le maximum d'un tableau à comparer atteint les 600000 lignes ?

Bonjour @ tous,

Salut Apt,

600.000 lignes est trop pour des formules matricielles...

@ + +

Bonjour R@chid,

Alors, je vais essayé d'adapter la solution de Game Over...

Rechercher des sujets similaires à "comparaison deux tableaux extraction valeurs"