Comparer 2 listes et lister lignes en doublons

mfb

XLDnaute Occasionnel
Bonjour le Forum.
Toutes mes recherches et trouvailles sur le forum n'ont pas permis de me tirer d'affaire pour comparer 2 listes, d'en extraire et lister les lignes en doublon.
Le fichier joint comporte une macro tirée des tutos de MR Boisgontier.
Peut être n'ai je pas puiser la bonne macro ou comme dab je me suis mélangé les pinceaux.
Je m'en remets donc à vous une fois de plus.
A dispo pour + infos.
Merci d'avance
Daniel
 

Pièces jointes

  • Sé recherche doublon.xlsm
    24 KB · Affichages: 61

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Une possibilité (un peu longuette)
1) Dans un colonne adjacente au premier tableau
=CONCATENER(E7;F7;G7;H7;I7;J7;K7;L7)
2) Dans un colonne adjacente au second tableau
=CONCATENER(O7;P7;Q7;R7;S7;T7;U7;V7)
3)Mettre des intitulés identiques (titres) dans les deux tableaux
4)Utiliser ce critère formulé (mis ici en X7)
=ESTNUM(EQUIV(W7;$M$7:$M$17;0))
5) Sélectionner le second tableau puis utiliser le filtre élaboré
01FFAA.jpg
 

mfb

XLDnaute Occasionnel
Re,
Merci Staple.
Voici mon essai. J'ai essayé de suivre tes indications.
Résultats pas brillant j'ai du me planter.
J'avoue que j'aurai préférence à une macro.
Mais il n'y a que le résultat qui compte.
Ou me suis je gourré ?
A+
 

Pièces jointes

  • Sé recherche doublon.xlsm
    24.7 KB · Affichages: 33

laetitia90

XLDnaute Barbatruc
bonsoir mfb:),JM:):)
par macro comme je comprends !!!

VB:
Sub es()
Dim t(), r(), i As Long, x As Long, m As Object, z, y As Byte
Set m = CreateObject("Scripting.Dictionary")
t = Range("e7:l" & Cells(Rows.Count, 5).End(3).Row)
r = Range("o7:v" & Cells(Rows.Count, 15).End(3).Row)
For i = 1 To UBound(t)
z = t(i, 1) & t(i, 2) & t(i, 3) & t(i, 4) & t(i, 5) & t(i, 6) & t(i, 7) & t(i, 8)
If Not m.exists(z) Then m.Add z, z
Next i
For i = 1 To UBound(r)
z = r(i, 1) & r(i, 2) & r(i, 3) & r(i, 4) & r(i, 5) & r(i, 6) & r(i, 7) & r(i, 8)
If m.exists(z) Then
x = x + 1
For y = 1 To 8: r(x, y) = r(i, y): Next y
End If
Next i
[x7].Resize(x, 8) = r
End Sub
 

mfb

XLDnaute Occasionnel
Re,
Désolé Staple j'ai pas réussi malgrés tes explications imagées. En Pj mon bidouillage. je ne voudrai pas rester idiot (y a de quoi faire) Qu'es ce qui ne vas pas ?
Pour Laetitia C ok ça marche nickel.
Merci a vous staple et Latitia
Bonne soirée
 

Pièces jointes

  • Sé recherche doublon.xlsm
    25 KB · Affichages: 35

Staple1600

XLDnaute Barbatruc
Re

1) J'ai testé avec le fichier joint dans le message#1
Donc utilises le même fichier
2) Sur ma copie d'écran, on voit ITEM9
Mais pas dans ton dernier fichier...
3) J'avais écrit de mettre la formule en X7
(Je n'ai pas écrit de recopier cette formule vers le bas)
4) Pourquoi tu n'utilises pas la formule telle que je l'ai écrite et telle qu'on la voit sur la copie d'écran?

Respectes toutes les conditions et toutes les explications et cela devrait marcher chez toi ;)
 

mfb

XLDnaute Occasionnel
Bonjour Staple.
J'ai bien essayer de reconduire les conditions et explications. Rien y fait.
Il y a toujours FAUX dans x7.
avec cela il ne s'affiche qu'une seule donnée en z6.
Je me suis permis de changer la destination pour copier en changeant z6 par y6:af6
avec cela toute les items sont bien renseignés. Mais pour 1 seul des doublons.
Ou me suis je à nouveau planté ?
J'espère ne pas gâcher ton WE mon pb.
A+ j'espère
Daniel
 

Pièces jointes

  • Sé recherche doublon.xlsm
    25 KB · Affichages: 29

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

C'est normal que la formule affiche FAUX.
Cette cellule X7 sert pour le critère du filtre élaboré.

Si tu reproduis à l'identique, ce que montre ma copie d'écran du message#4
et que tu utilises les formules telle que je les ai écrite cela doit marcher.
1)Adresse des tableaux
tableau 1: E6:M17
tableau 2: O6:W17
zone de critère du filtre: X6:X7
2) Voici les seules cellules où il doit y avoir des formules
M7 |=>=CONCATENER(E7;F7;G7;H7;I7;J7;K7;L7)
W7 |=>=CONCATENER(O7;P7;Q7;R7;S7;T7;U7;V7)
X7 |=>=ESTNUM(EQUIV(W7;$M$7:$M$17;0))
M8 |=>=CONCATENER(E8;F8;G8;H8;I8;J8;K8;L8)
W8 |=>=CONCATENER(O8;P8;Q8;R8;S8;T8;U8;V8)
M9 |=>=CONCATENER(E9;F9;G9;H9;I9;J9;K9;L9)
W9 |=>=CONCATENER(O9;P9;Q9;R9;S9;T9;U9;V9)
M10 |=>=CONCATENER(E10;F10;G10;H10;I10;J10;K10;L10)
W10 |=>=CONCATENER(O10;P10;Q10;R10;S10;T10;U10;V10)
M11 |=>=CONCATENER(E11;F11;G11;H11;I11;J11;K11;L11)
W11 |=>=CONCATENER(O11;P11;Q11;R11;S11;T11;U11;V11)
M12 |=>=CONCATENER(E12;F12;G12;H12;I12;J12;K12;L12)
W12 |=>=CONCATENER(O12;P12;Q12;R12;S12;T12;U12;V12)
M13 |=>=CONCATENER(E13;F13;G13;H13;I13;J13;K13;L13)
W13 |=>=CONCATENER(O13;P13;Q13;R13;S13;T13;U13;V13)
M14 |=>=CONCATENER(E14;F14;G14;H14;I14;J14;K14;L14)
W14 |=>=CONCATENER(O14;P14;Q14;R14;S14;T14;U14;V14)
M15 |=>=CONCATENER(E15;F15;G15;H15;I15;J15;K15;L15)
W15 |=>=CONCATENER(O15;P15;Q15;R15;S15;T15;U15;V15)
M16 |=>=CONCATENER(E16;F16;G16;H16;I16;J16;K16;L16)
W16 |=>=CONCATENER(O16;P16;Q16;R16;S16;T16;U16;V16)
M17 |=>=CONCATENER(E17;F17;G17;H17;I17;J17;K17;L17)
W17 |=>=CONCATENER(O17;P17;Q17;R17;S17;T17;U17;V17)
 

mfb

XLDnaute Occasionnel
Re,
Y a du mieux.
Mais seul la col 1er item du tableau résultat se renseigne bien et bon
J'ai vérifié tous les contenus de cellules est Ok
Dans l'encart filtre avancé
la zone de critère Ok
seule une plage ne peut être renseignée j'y ai mis la plage du tableau 2.
Vois le résultat en pj
Merci pour ta patience
Daniel
 

Pièces jointes

  • Sé recherche doublon-3.xlsm
    24.9 KB · Affichages: 40

Staple1600

XLDnaute Barbatruc
Re,

Re,
J'ai vérifié tous les contenus de cellules est Ok
Cette assertion est fausse ;)

1) Regarde ma copie d'écran avec des lunettes fonctionnelles et garanties CE ;)
(Celle du message#4)

2) Arrête toi notamment sur le contenu des cellules M6 et W6

3) Ensuite dis moi ce que contiennent les cellules M6 et W6 de ton fichier ?
(Celui du message#10)

EDITION: Lances cette macro (après avoir ajouté ce qui manquait)
VB:
Sub Macro1()
Range("Y2:AI100").Clear
Range("Z4") = "Résultat Filtre": Range("Z4").Font.Bold = True
Range("O6:W17").AdvancedFilter _
        Action:=xlFilterCopy, _
        CriteriaRange:=Range("Feuil1!$X$6:$X$7"), _
        CopyToRange:=Range("Z6")
Range("Z6").CurrentRegion.Select
End Sub

Si cela ne marche pas, alors c'est plus grave qu'une paire de lunettes dysfonctionnelles ;)
 
Dernière édition:

mfb

XLDnaute Occasionnel
Re,
J'ai sorti les lunettes fonctionnelles garanties Ce et à double foyer !!!
Effectivement M6 et W6 étaient vides alors j'ai ajouté item 9
résultat .......... que dalle.
Par contre pour le macro c'est Ok.
je crois que je vais laisser de côté le filtre élaboré et utiliser ta macro.
Alors pour toi Staple MERCI beaucoup et sans rancune j'espère pour ce pédalage de ma part,
et à une autre fois. (pas sur 1 filtre)
A+
daniel
 

mfb

XLDnaute Occasionnel
Re,
J'ai comparé la plage macro et la plage filtre. Elles sont identiques.
Alors pris de rage avant de tout laisser tomber j'ai fait une nième tentative
sans RIEN CHANGER DU TOUT et ............... SURPRISE ça MARCHE !!!!!!!!!!!!!
Mystère ?
Alors Staple un GRAND merci pour ce démélage
A+
Daniel
Ps: je sais comment indiquer que ce fil est résolu
 

Discussions similaires

Statistiques des forums

Discussions
312 194
Messages
2 086 066
Membres
103 110
dernier inscrit
Privé