Recherche de "non doublons"

Bonjour

Quelques petits soucis avec un fichier excel 2003.

Dans ce fichier il y a 2 feuilles. Feuille 1 et Feuille 2.

Il y a une colonne qui est commune à ces 2 feuilles. la colonne A

Comment faire pour créer une feuille 3 qui contient uniquement les enregistrements de la feuille 1 qui ne sont pas dans la feuille 2 ?

La recherche se faisant sur la colonne A de chaque feuille.

Merci par avance de votre aide

Bonjour,

Une tentative avec une formule matricielle :

=SI(LIGNE()>SOMMEPROD((ESTNA(EQUIV(Feuil1!$A$1:$A$20;Feuil2!$A$1:$A$13;0))*1));"";INDEX(Feuil1!$A$1:$A$20;PETITE.VALEUR(SI(ESTNA(EQUIV(Feuil1!$A$1:$A$20;Feuil2!$A$1:$A$13;0))*LIGNE(INDIRECT("1:"&NBVAL(Feuil1!$A$1:$A$20)))<>0;ESTNA(EQUIV(Feuil1!$A$1:$A$20;Feuil2!$A$1:$A$13;0))*LIGNE(INDIRECT("1:"&NBVAL(Feuil1!$A$1:$A$20))));LIGNE())))

Formule matricielle à valider par CTRL + MAJ + ENTREE

Plages de cellules à adapter

Voir fichier exemple joint

https://www.excel-pratique.com/~files/doc/non_doublons.zip

@+

Bonjour

Tout d'abord merci pour votre rapidité. Epoustouflant la formule !!!!!!!

Elle fonctionne parfaitement sur un peti fichier. Le mien contient 3300 enregistrment dans la feuil1 et 3200 dans la feuill2. Impossible de modifier les plages de cellules dans votre formule sans avoir une erreur. Dans la cellule apparait: N/A

Merci encore

Bonsoir,

On peut essayer avec une petite macro,

peux-tu joindre une copie de ton fichier avec seulement quelques lignes, pour voir la structure ?

amicalement

Claude.

Bonsoir

Avec 2 formules simples moins gourmandes en mémoire que les matricielles.

https://www.excel-pratique.com/~files/doc/non_doublonsV2.xls

Cordialement

re,

édit: il faut une Feuil3 vide

en VBA

https://www.excel-pratique.com/~files/doc/Equiv_listes_2feuilles.xls

amicalement

Claude

re,

Version2. qui boucle sur les 2 feuilles

https://www.excel-pratique.com/~files/doc/Equiv_listes_2feuilles_2.xls

Claude.

Bonjour à tous

Merci à tous pour vos conseils. Je test vos propositions et je vous tiens au courant. En tous cas c'est très sympa à vous de me donner ce coup de main.

Re bonjour CLAUDE

J'ai testé ta solution, c'est génial !!!!!

Ta macro me sort 600 enregistrement en un temps record!!

Par contre j'aurais voulu que sur la feuille de restitution (Feuil3), il apparaisse la ligne entière de chaque enregistrement et non pas que la colonne A. Est-ce possible ?

Merci

Philippe

dubois a écrit :

peux-tu joindre une copie de ton fichier avec seulement quelques lignes, pour voir la structure ?.

Bonjour à tous,

Jusqu'à quelle colonne tes feuilles sont occupées ?

la macro est prête, reste ce détail à régler

Claude.

A+

Notre ami n'est pas causant...

Voici une solution :

Sub galopin()
Dim i&, i2&, k&, z$, unique As New Collection
Application.ScreenUpdating = False
Application.DisplayAlerts = False
i = [Feuil1!A65536].End(xlUp).Row
j = [Feuil2!A65536].End(xlUp).Row
On Error Resume Next
For k = 1 To j
z = Sheets(2).Cells(k, 1).Value
unique.Add z, z
Next
Sheets(1).Rows("1:" & i).Copy Sheets(3).Range("A1")
On Error GoTo GESTERR
For k = i To 1 Step -1
z = Sheets(3).Cells(k, 1).Value
unique.Add z, z
Next
Exit Sub
GESTERR:
Sheets(3).Rows(k).Delete
Resume Next
End Sub

A+

galopin01 a écrit :

A+

Notre ami n'est pas causant...

Voici une solution :

Sub galopin()
Dim i&, i2&, k&, z$, unique As New Collection
Application.ScreenUpdating = False
Application.DisplayAlerts = False
i = [Feuil1!A65536].End(xlUp).Row
j = [Feuil2!A65536].End(xlUp).Row
On Error Resume Next
For k = 1 To j
z = Sheets(2).Cells(k, 1).Value
unique.Add z, z
Next
Sheets(1).Rows("1:" & i).Copy Sheets(3).Range("A1")
On Error GoTo GESTERR
For k = i To 1 Step -1
z = Sheets(3).Cells(k, 1).Value
unique.Add z, z
Next
Exit Sub
GESTERR:
Rows(k).Delete
Resume Next
End Sub

A+

Bonjour à tous

Je me suis absenté pour la journée! je profites du beau temps qui se fait rare...

Concernant la structure des feuilles, feuil1 jusqu'a AQ et Feuil2 jusqu'a R.

Je vais essayer de mettre un extrait de mon fichier. RE MERCI à vous tous

Voila un extrait de mon fichier qui contient environ 3600 enregistrement dans la feuil1 et 3500 dans la feuil2

https://www.excel-pratique.com/~files/doc/Extrait.xls

Bonsoir à tous,

Version3 : édit: on suppose ici qu'il n'y a pas de vides en colonnes A

Sub Nondoublon3()
Dim Sh, x, y
x = Sheets(1).Name
y = Sheets(2).Name
Dim i As Byte
                Application.ScreenUpdating = False
            Range("Feuil3!a:b").Clear 'purge
        Sheets(x).Activate
    For i = 1 To 2
                Sh = ActiveSheet.Name
                    If Sh = x Then Range("as1") = "=MATCH(at1," & y & "!a:a,0)" 'merci Mytå
                    If Sh = y Then Range("as1") = "=MATCH(at1," & x & "!a:a,0)"
                    Range("a1").Select
            Do While ActiveCell <> ""
                    Range("at1") = ActiveCell
                        If IsError(Range("as1")) Then
                            ActiveCell.EntireRow.Copy Destination:=Range("Feuil3!a65000").End(xlUp)(2)
                            Application.CutCopyMode = False
                        End If
                    ActiveCell.Offset(1, 0).Select
            Loop
                Range("as1:at1").ClearContents
                Range("a1").Activate
            Sheets(y).Activate
    Next i
            Sheets("Feuil3").Activate
                Range("as:at").Clear
End Sub

pour retrouver d'où viennent les lignes, tu colores les colonnes A différemment.

amicalement

Claude

re,

Si les feuilles ont des vides en colonne A

https://www.excel-pratique.com/~files/doc/Equiv_listes_2feuilles_3.xls

Claude.

bonsoir,

Nous n'avons pas tout à fait la même lecture et donc pas tout à fait le même résultat.

La question était :

Comment faire pour créer une feuille 3 qui contient uniquement les enregistrements de la feuille 1 qui ne sont pas dans la feuille 2

La macro de Dubois en fait un peu plus: elle ramène également les enregistrements de la feuille 2 qui ne sont pas dans la feuille 1

J'ai toutefois un peu corrigé la mienne, car elle ne donnait pas le même résultat selon la feuille ou on l'exécutait.

A+

Bonjour au forum,

çà méritait quand même une réponse ! !

Claude.

Rechercher des sujets similaires à "recherche doublons"