Comparer deux paires de données dans les deux sens

Bonjour à tous,

Voilà, je cherche et j'ai trouvé des bouts que j'arrive à adapter mais je n'arrive plus à aller aussi loin que je voudrais...

J'ai deux listes de paire (client/projet) que j'ai extraites sans doublon à partir de deux feuilles différentes.

donc une paire (Client/projet) issue d'une "première feuille" = liste A et une deuxième paire (Client/projet) issue d'une "deuxième feuille" = liste B, les deux recopiées sur une troisième feuilles.

Je veux comparer, ici uniquement les différences entre les deux paires ET dans les deux sens.

Je m'explique, aussi bien la paire non présente dans la liste B mais présente dans la liste A, comme la paire non présente dans la liste A mais présente dans la liste B.

J'arrive à faire dans un sens (première partie du code) mais pas dans l'autre sens (il se passe rien) :

Sub test1_2FACTURE_LISTE_UNIQUE_comparer()
Dim i&, a&, j&, b&, fin&
    With Sheets("LISTE UNIQUE facture")
        fin = .Range("A" & Rows.Count).End(xlUp).Row

        For i = 4 To fin
            For a = 4 To fin
                If .Cells(i, 1) = .Cells(a, 4) Then
                If .Cells(i, 2) = .Cells(a, 5) Then
                    GoTo 1
                End If
                End If
            Next a
            .Cells(i, 7) = .Cells(i, 1)
            .Cells(i, 8) = .Cells(i, 2)
1      Next i

        For j = 4 To fin
            For b = 4 To fin
                If .Cells(j, 4) = .Cells(b, 1) Then
                If .Cells(j, 5) = .Cells(b, 2) Then
                    GoTo 2
                End If
                End If
            Next b
            .Cells(j, 9) = .Cells(b, 4)
            .Cells(j, 10) = .Cells(b, 5)
2        Next j

    End With
End Sub

L'idéal serait d'avoir toutes les différences (A abs dans B et B abs dans A) regroupées dans une seule et même liste, alors j'aimais bien ce bout de code, mais je n'arrive même pas à l'adapter pour une paire de colonnes :

Sub test2FACTURE_LISTE_UNIQUE_comparer()
[H:H] = ""
x = 1
For Each c In [B1:B1000]
      If IsError(Application.Match(c, [E1:E1000], 0)) Then
            Cells(x, "H") = c: x = x + 1
      End If
Next
End Sub

Voilà si certain ont des suggestions, je suis toujours heureuse de comprendre comment ça marche...

Merci à tous

26liste-unique.xlsm (57.61 Ko)

Bonjour

Pas sur d'avoir bien compris (d’où l'importance des exemples)

Bonjour Banzai,

Mille mercis! Je suis toujours aussi impressionnée par les possibilités de Excel!

C'est exactement ce que j'espérais. Pour la première solution, je vois que ma logique de répéter le code n'était pas fausse, mais j'étais pas assez attentive! (J'ai dû m'écarquiller les yeux ce matin pour voir mon erreur

La deuxième solution est parfaite! j'en espérais pas autant, mais c'est ce que je préfère, encore merci.

Je vais pouvoir me pencher dessus, histoire de déchiffrer (très modestement) tout ça.

Bonne journée.

Rechercher des sujets similaires à "comparer deux paires donnees sens"