Recherche de Doublons - 3 Feuilles

Bonjour !

J'aurai besoin de conseils sur la meilleur méthode à adopter pour une recherche de doublons entre plusieurs feuilles. Je vais expliquer ça plus clairement !

J'ai 3 bases de données (3 feuilles), chacune disposant de plusieurs colonnes que je dois conserver et d'un grand nombre de lignes (la base de donnée la plus large en possède 5000 environ).

Chaque ligne démarre par un code article, et l'idée est de retrouver les doublons de ces codes articles entre les différentes feuilles, car certains codes sont utilisés dans plusieurs base de donnée mais ne correspondent pas au même élément.

Je voudrai ensuite réunir les lignes doublons sur une nouvelle feuille, mais je pense que je saurai m'en sortir à ce moment la !

Je voulais donc savoir quel était vos suggestions pour retrouver les doublons de la manière la plus simple, ou la plus rapide, ou simplement la plus EXCELlente.

Je suis très actif s'il y a la moindre question ou précision

En tout cas merci d'avance et bonne soirée à vous !

Hev

bonjour

dans ta table 2, mettre une nouvelle colonne =RECHERCHEV(laréférence:table1;1;0)

tous les #NA signifient "pas de doublon"

sinon doublon.

joins un fichier de 3 colonnes et 10 lignes (et 2 feuilles) pour voir

Bonsoir,

A défaut de fichier, voici un exemple de doublons multi-feuilles et de doublons entre 2 colonnes avec différents scénarios.

Boisgontier

Merci bien ! je check ça dès que je peux !

Je joins un fichier type !

Il y a simplement beaucoup plus de colonnes et de ligne dans la version originale.

Je n'arrive pas à utiliser la fonction recherchev, je suis vraiment VRAIMENT débutant dans excel. Pourtant les consignes sont simples

Pour les fichiers doublons, le premier est vraiment pas mal mais il prend en compte 2 variables (Clients et secteurs en l’occurrence) et les conditions de doublons dépendent des deux (Ou alors j'ai mal compris/pouvais le changer facilement..?)

Merci !

Bonjour,

Sub supDoublons()
  Set d = CreateObject("Scripting.Dictionary")
  For s = 1 To Sheets.Count - 1
    For Each c In Range(Sheets(s).[a2], Sheets(s).[a65000].End(xlUp))
       clé = c.Text
       tmp = c & "|" & c.Offset(, 1) & "|" & c.Offset(, 2)
       d(clé) = tmp
   Next c
  Next s
  i = 2
  For Each c In d.keys
    tmp = d(c)
    a = Split(tmp, "|")
    Sheets("synthèse").Cells(i, 1) = "'" & a(0)
    Sheets("synthèse").Cells(i, 2) = "'" & (a(1))
    Sheets("synthèse").Cells(i, 3) = "'" & (a(2))
    i = i + 1
  Next c
End Sub

Boisgontier

Bonjour,

Une alternative à VBA, avec Récupérer et transformer (Power Query).

A te relire.

Cdlt.

Vous êtes tout les deux entrain de me faire flipper, je me rend compte que je ne suis même pas débutant y'a un gouffre la. Je vois de la façon dont vous me le dites que c'est simple, même pas besoin d'explication, et pourtant je ne comprend rien. J'ai volontairement mis des doublons dans le tableau mais impossible de les retrouver/surligner/automatiser leur détection.. A partir du fichier VBA, je dois faire quoi ? rentrer la même ligne quelque part ?

A partir du fichier consolidé, pour trouver les doublons, je fais une mise en forme conditionnelle..? ça c'est de mon niveau..

Mon dieu il faut absolument que je suive une formation.

Coloriage des doublons

Sub ColoriageDoublons()
  Set d = CreateObject("Scripting.Dictionary")
  For s = 1 To Sheets.Count - 1
    [A:A].Interior.ColorIndex = xlNone
    For Each c In Range(Sheets(s).[a2], Sheets(s).[a65000].End(xlUp))
       clé = c.Text
       d(clé) = d(clé) + 1
    Next c
  Next s
  For s = 1 To Sheets.Count - 1
    For Each c In Range(Sheets(s).[a2], Sheets(s).[a65000].End(xlUp))
       clé = c.Text
       If d(clé) > 1 Then c.Interior.ColorIndex = 3
    Next c
  Next s
End Sub

Boisgontier

C'est génial, merci beaucoup. Bon et puis ça ma permis de me rendre de mon niveau lamentable donc je vais m'y mettre grâce à vous !

Hev

Bonjour,

Je reviens sur ce post qui est très intéressant.

Par contre je voudrai faire l'inverse. Que les les lignes uniques sois copiées sur la Feuille News.

Sub supDoublons()

Set d = CreateObject("Scripting.Dictionary")

For s = 1 To Sheets.Count - 1

For Each c In Range(Sheets(s).[a2], Sheets(s).[a65000].End(xlUp))

clé = c.Text

tmp = c & "|" & c.Offset(, 1) & "|" & c.Offset(, 2) & "|" & c.Offset(, 3) & "|" & c.Offset(, 4) & "|" & c.Offset(, 5) & "|" & c.Offset(, 6) & "|" & c.Offset(, 7)

d(clé) = tmp

Next c

Next s

I = 2

For Each c In d.keys

tmp = d(c)

a = Split(tmp, "|")

Sheets("Ancien").Cells(I, 1) = "'" & a(0)

Sheets("Ancien").Cells(I, 2) = "'" & (a(1))

Sheets("Ancien").Cells(I, 3) = "'" & (a(2))

Sheets("Ancien").Cells(I, 4) = "'" & (a(3))

Sheets("Ancien").Cells(I, 5) = "'" & (a(4))

Sheets("Ancien").Cells(I, 6) = "'" & (a(5))

Sheets("Ancien").Cells(I, 7) = (a(6))

I = I + 1

Next c

End Sub

Merci pour votre aide

Patrick

Rechercher des sujets similaires à "recherche doublons feuilles"