Comparer Deux feuilles Excel

Bonjour alors je vous explique mon problème (j'ai déjà fait des recherches et je n'ai pas réussi à le résoudre). Je dois comparer deux bases de données sur deux feuilles différentes en faisant ressortir automatiquement les lignes qui ont disparu ou apparu (qui corresponde à une arrivée/départ d'un employé) et aussi les différences dans une colonne spécifique.

Voici un fichier similaire à celui que je dois comparer (même si il est beaucoup plus long en vrai).Comme vous le voyez LELIEVRE est parti, LEBOUC est arrivé, et LEBOEUF z changé d'agence. Voila ce que je voudrais faire ressortir automatiquement.

Si vous avez une solution ce serait super cool je suis complètement bloqué et une petite explication m'aiderai aussi pour après.

Merci d'avance

843classeur1.xlsx (9.07 Ko)

Bonsoir solobomb le forum

voilà avec le résultat en feuille 3, tu cliques sur le bouton

a+

papou

4'745comparerv1.xlsm (21.29 Ko)

MMH la rapidité avec laquelle t'as réussi est presque insolente ca fait trois jours que je m'arrache les cheveux dessus lol. En tout cas merci beaucoup mais tu peux détailler un petit peu ce qui faut faire stp (c'est avec la fonction recherchev et une macro non?)

Re bonjour Solobomb le forum

Non regarde dans le module 1 tu as ma macro, en fait je met les deux feuilles en tableau et ensuite je concatène les colonnes pour comparer exactement les identités etc et là j'identifie dans un premier temps les entrées identiques.

Ensuite je supprime les concaténations et je refais une concaténation des deux colonnes A et B et là je recompare si les noms présent dans la feuille 1 sont aussi dans le feuille 2 et excluant naturellement les articles déjà commun.

et ensuite je traite les deux tableaux pour récupérer tout ce qui n'est pas commun voilà en quelques mots ta macro

a+

papou

Bonjour à tous,

Je suis tombé avec grande surprise sur ce post. Cette macro est un outil plus qu’appréciable pour mon travail!

Elle fonctionne très bien chez moi avec excel 2007, malheureusement au travail la version est antérieure et la macro ne fonctionne pas. Est-ce qu'il vous serait possible d'adapter exactement la même macro mais pour les versions antérieures d'excel?

Un grand merci d'avance.

Bonjour Restepaslà le forum

pas de souci, mais le plus simple est de travailler sur un fichier alors tu mets ton fichier et toutes les explications qui vont bien et je te ferai cela

a+

papou

Hello

En fait, le fichier de solobomb représente 95%% ce dont j'aurais besoin. J'ai apporté une modification, car nous travaillons avec des numéros de matricules uniques par personnes, ce qui peut éviter des problèmes en cas de changement de noms de famille.

La seule contrainte étant que nous travaillons avec une version de 2003 au boulot. Je ne sais pas si c'est le bouton qui ne fonctionne pas avec cette version, mais il n’apparait que comme une simple image lorsque je l'ouvre au travail alors que chez moi il fonctionne très bien et lance la macro.

Un grand merci pour ton aide.

476classeur1-1.xls (18.50 Ko)

Bonjour Restepaslà le forum

ton fichier en retour

a+

papou

1'177restpasla-v1.zip (15.25 Ko)

Bonjour papou.

Merci beaucoup, la macro est top.

Juste si je modifie le numéro d'imputation dans la feuille deux, la personne apparait en résultat comme parti et nouveau en même temps. Par exemple Leboeuf. Est-ce qu'il serait possible que la personne n'apparaisse qu'une seule fois avec comme message "Mutation interne"?

Merci beaucoup.

Bonjour Restepaslà le forum

oui c'est possible là pas le temps mais je regarderai

a+

papou

Bonjour,

Je relance ce sujet car il est extrêmement intéressant et très utile pour moi.

Je souhaite réaliser exactement ce qu'a demandé Solobomb, c'est à dire identifier si un contact est parti ou ses coordonées ont changé ou si il y a un nouveau contact dans ma liste.

Mon tableau comporte 8 colones au lieu de 6.

J'ai tenté de bidouiller le code moi-même pour réctifier le nombre de colonne et obtenir exactement la même chose mais hélas ça ne marche pas...

Je n'ai que la première ligne et elle est fausse puisque cette personne n'a pas changé.

Option Explicit
Option Base 1

Sub Progtest()
    Dim i&, fin&, fin1&, fin3, a&, aa As Variant, bb As Variant, cc As Variant
    fin = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    fin1 = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row
    aa = Feuil1.Range("A2:J" & fin)
    bb = Sheets("Feuil2").Range("A2:J" & fin)
    fin3 = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row
    If fin3 < 2 Then fin3 = 2
    Sheets("Feuil3").Range("A2:I" & fin3).Clear
    For i = 1 To UBound(aa)
        For a = 1 To 8
            aa(i, 9) = aa(i, 9) & "#" & aa(i, a)
        Next a
    Next i
    For i = 1 To UBound(bb)
        For a = 1 To 8
            bb(i, 9) = bb(i, 9) & "#" & bb(i, a)
        Next a
    Next i
    For i = 1 To UBound(aa)
        For a = 1 To UBound(bb)
            If aa(i, 9) = bb(a, 9) Then aa(i, 10) = "Idem": bb(a, 10) = "Idem"
        Next a
    Next i
    For i = 1 To UBound(aa)
        aa(i, 9) = ""
        For a = 1 To 2
            aa(i, 9) = aa(i, 9) & "#" & aa(i, a)
        Next a
    Next i
    For i = 1 To UBound(bb)
        bb(i, 9) = ""
        For a = 1 To 2
            bb(i, 9) = bb(i, 9) & "#" & bb(i, a)
        Next a
    Next i
    For i = 1 To UBound(aa)
        For a = 1 To UBound(bb)
            If aa(i, 9) = bb(a, 9) And bb(a, 10) = "" Then bb(a, 10) = "Changé": GoTo 1
            If aa(i, 9) = bb(a, 9) And bb(a, 10) = "idem" Then GoTo 1

        Next a
        If aa(i, 10) = "" Then aa(i, 10) = "Parti"
        If bb(i, 10) = "" Then bb(i, 10) = "Nouveau"
1   Next i
    For i = 1 To UBound(aa)
        If aa(i, 10) = "Idem" Or aa(i, 10) = "" Then
            GoTo 2
        Else:
            fin = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row + 1
            For a = 1 To 8
                Sheets("Feuil3").Cells(fin, a) = aa(i, a)
            Next a
            Sheets("Feuil3").Cells(fin, 9) = aa(i, 10)
        End If
2   Next i
    For i = 1 To UBound(bb)
        If bb(i, 10) = "Idem" Then
            GoTo 3
        Else:
            fin = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row + 1
            For a = 1 To 8
                Sheets("Feuil3").Cells(fin, a) = bb(i, a)
            Next a
            Sheets("Feuil3").Cells(fin, 9) = bb(i, 10)
        End If
3   Next i
End Sub

Merci à ceux qui pourront m'aider.

Cordialement,

Bonjour Sophie 85 le forum

le fichier en retour tu ouvres et tu cliques sur traiter et tu me redis

a+

papou

38sophie-85-v1.xlsm (31.49 Ko)

Re Sophie85 le forum

j'ai remodifié car tu as la colonne nom et prénom qui n'est pas en 1 et 2 mais 2 et 3 alors voilà

a+

papou

83sophie-85-v2.xlsm (29.53 Ko)

Merci pour tout paritec,

Effectivement mes champs nom et prénom n'étaient pas dans les même colonnes.

Je l'ai fait tourner sur plusieurs de mes fichiers à comparer et ça marche nikel !!

C'est un magnifique boulot ! Tu me sauves la vie

Edit: Je cherche le bouton Résolu mais je ne le trouve pas....

Bonsoir Sophie le forum

tu as un V vert entre Editer et Citer, tu cliques dessus et cela marquera résolu

a+

Papou

(moi je ne pose jamais des questions je ne fais que répondre, alors je ne coche jamais le V raison pour la quelle je suppose que)

Bah non je n'ai pas cette coche, peut-être que seule la première personne à poster un message a cette petite coche...

Re Bonjour Sophie,

bah là je ne sais pas quoi te dire , comme je t'ai dit je ne pose jamais des questions sur le forum, je ne fais que répondre alors je n'ai jamais a cocher résolu

quoi qu'il en soit je pense que tu as raison, seul le générateur du 1er post doit avoir cette possibilité

Enfin pas grave l'essentiel pour toi est d'avoir ta macro et tu l'as

a+

papou

Bonjour a tous,

Je suıs nouveau sur le forum maıs j'aı vu que ca repondaıt plutot vıte et bıen !

Voıla j'aı un petıt soucıs avec un truc sur Excel :

En faıt je doıs ıdentıfıer dans la page 1 les references quı sont presentes dans la page 2 de la colonne ayant la meme reference (colonne ayant la meme reference par exemple la colonne AA feuılle 1 correspond a la colonne B sur la feuılle 2)

Et une foıs que j'aı ıdentıfıé les references par lıgne de la feuılle 1 quı sont presentes sur la feuılle 2 je doıs remplacer le blanc par un "x".

Pour faıre sımple, j'aı la lıste des composants d'une pıece (feuılle 2) et je doıs ındıquer dans ma feuılle 1 (a l'aıde d'une croıx "x") sı telle reference est utılısée pour telle pıece. Et aınsı de suıte.

Les references sont par lıgnes et les pıeces en questıon sont par colonne. FEUILLE 1 et feuılle 2

C'est en gros une boucle quı verıfıe colonne par colonne en faısant appel a la feuılle 2 sı la reference est presente ou non et une foıs qu'ıl saıt ou elle est ıl met un "x" dans la case d'ıntersectıon de la pıece avec la ref et ıl passe a la suıvante.

Avez-vous une ıdée de comment faıre ?

Bonjour Reverso le forum

bah c'est simple tu ouvres une nouvelle discussion, tu joins un fichier avec les explications de ce que tu as et de ce que tu souhaites obtenir et tu auras des réponses

a+

papou

Bonjour,

Je viens de tomber sur ce forum, en cherchant déseperemment une solution pour comparer mes deux feuilles excel.

J'ai trouvé que le fichier "ComparerV1" que Paritec a posté le 11/06/11 correspond presque parfaitement à mes attentes.

Je l'ai réutilisé pour l'adapter à la version 2003.

Le seul hic : j'ai essayé de modifier le code pour l'adapter à mon problème, en vain..

Mes questions donc :

1 ) Est il possible d'adapter ce code pour un nombre de lignes "illimitées", par exemple pour comparer deux fichiers excel dont on ne connait pas à l'avance le nombre de lignes ?

Ici le code ne fonctionne pas au delà de la ligne 18 sur la feuille 2 : si on ajoute qql chose ligne 19, cela ne s'affiche pas dans la feuille de résultats (feuille 3).

2 ) Comment modifier, dans le code, les numéros des colonnes dont les informations sont susceptibles d'être modifiées entre les feuilles 1 et 2 ?

Ici, ce sont les colonnes C à F, mais dans mon cas mes fichiers sont plus gros et je voudrais étendre cette plage.

J'espère que mes questions sont conpréhensibles, je suis coincée là

Merci d'avance pour votre aide !

Rechercher des sujets similaires à "comparer deux feuilles"