Macro comparaison colonne sens unique + Ajout

Bonjour à tous,

Je souhaiterais faire une macro de comparaison de données sur 2 colonnes.

Je joins un fichier pour illustrer mes explications.

Je dispose de deux bases PAYSVille, la première base est sur la feuille "1-New extract" et la seconde sur la feuille "2-Data base modifiée".

Sur la première feuille, de nouvelles données sont présentes et je souhaiterais pouvoir les ajouter à ma seconde base. La base 2 est constituée des données "anciennes", "actuelles" et l'idée serait d'ajouter les "nouvelles".

J'ai trouvé sur internet des macros de comparaison de données, cependant ça me liste toutes les données qui ne se retrouvent pas dans les deux bases. Alors que pour mon cas c'est uniquement les données de la base 1 qui ne se retrouvent pas dans la base 2 que je souhaiterait lister (et non l'inverse), tout en conservant les autres données existantes.

Les données à comparer sont dans la colonne A.

Pourriez-vous m'aider ou du moins me donner l'astuce pour coder une fonction de comparaison dans le sens voulu ? Je n'ai aucune idée sur la façon dont je dois procéder...

En esperant que mes explications soient claires ,

Merci beaucoup pour votre aide !

10exemple2.xlsx (13.19 Ko)

Bonjour Kleem,

Comme ceci :

Restitution sur une nouvelle feuille

Option Explicit
Sub test()
Dim a, i As Long, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    '2eme feuille dans le classeur
    With Sheets(2).Range("a5").CurrentRegion
        a = .Value
        For i = 1 To UBound(a, 1)
            dico(a(i, 1)) = VBA.Array(a(i, 1), a(i, 2), _
                            a(i, 3), a(i, 4), a(i, 5), a(i, 6), a(i, 7), a(i, 8), a(i, 9))
        Next
    End With
    '1ere feuille dans le classeur
    With Sheets(1).Range("a1").CurrentRegion
        a = .Value
        For i = 2 To UBound(a, 1)
            If Not dico.exists(a(i, 1)) Then
                dico(a(i, 1)) = VBA.Array(a(i, 1), a(i, 2), _
                            a(i, 3), a(i, 4), a(i, 5), a(i, 6), a(i, 7), a(i, 8), a(i, 9))
            End If
        Next
    End With
    'feuille de restitution
    '3eme feuille dans le classeur
    With Sheets(3).Range("a1")
        .CurrentRegion.Clear
        .Resize(dico.Count, 9).Value = _
        Application.Transpose(Application.Transpose(dico.items))
    End With
    Set dico = Nothing
End Sub

klin89

Bonjour

A noter que c'est un multipost avec des réponses ailleurs...

Bonjour Klin 89,

Je te remercie pour ton aide,

Je te souhaite une très bonne journée,

Kleem

Rechercher des sujets similaires à "macro comparaison colonne sens unique ajout"