Detection de doublons

boudoula

XLDnaute Nouveau
Bonjour à tous,

je suis à la recherche d'un code qui me permettrait de détecter des doublons.
J'ai des fichiers texte que j'importe dans une colonne et je voudrais savoir comment faire pour tester chaque cellules une à une pour savoir si des données sont en double

merci d'avance pour vos réponses
 

Victor21

XLDnaute Barbatruc
Re : Detection de doublons

Bonjour, boudoula.

Il existe plusieurs centaines de posts concernant la recherche des doublons.
Pour effectuer la recherche, et si les discussions similaires (ci-dessous) ne vous apportent pas la réponse souhaitée, la loupe (en haut et à droite de cette page) devrait vous aider.
 

boudoula

XLDnaute Nouveau
Re : Detection de doublons

Re
je viens de parcourir diverses solutions mais elles ne répondent pas à mon besoin.
mes cellules contiennent du texte, et toutes les colonnes ne font pas la meme longueur. Admettons que mon tableau soit A1:W368, je veux prendre chaque valeur une à une et faire un test dans toutes les autres cases du tableau puis si un doublons et trouvé colorié les cellules contenant des doublons
 

Victor21

XLDnaute Barbatruc
Re : Detection de doublons

Re, Bonjour, Rachid ;)
Re
je viens de parcourir diverses solutions mais elles ne répondent pas à mon besoin.
mes cellules contiennent du texte, et toutes les colonnes ne font pas la meme longueur. Admettons que mon tableau soit A1:W368, je veux prendre chaque valeur une à une et faire un test dans toutes les autres cases du tableau puis si un doublons et trouvé colorié les cellules contenant des doublons
La mise en forme conditionnelle est dans ce cas faite pour vous.
Sélectionnez A1:W368
Format, mise en forme conditionnelle, la formule est :
=ET(A1<>"";NB.SI($A$1:$W$368;A1)>0)
et choisissez la mise en forme souhaitée.
 

patoq

XLDnaute Occasionnel
Re : Detection de doublons

Salut Boudoula,Rachid

VB:
 Sub reperer_doublons()
Dim Lig As Integer, Col As Integer
For Lig = 1 To 368
For Col = 1 To 23
If WorksheetFunction.CountIf(Range(Cells(Lig, 1), Cells(Lig, 23)), Cells(Lig, Col)) > 1 Then
Cells(Lig, Col).Interior.ColorIndex = 33
End If
Next
Next
End Sub

A Adapter au nombre de lignes et de colonnes
La recherche sur le forum m'a pris 2 mns
A plus
 

JNP

XLDnaute Barbatruc
Re : Detection de doublons

Bonjour le fil :),
Les !!!! ne servent à rien et ne vont pas inciter les gens à t'aider :mad:...
J'étais parti sur la même idée que Victor, mais en plus simple, vu que j'ai appris que les cellules vides n'étaient pas prises en compte par NB.SI :p
Le fichier en retour, où j'ai été obligé de créer un doublon, vu qu'il n'yen avais pas (excellent, l'exemple :eek:...)
Bonne suite :cool:
 

Pièces jointes

  • Classeur2_97(1).xls
    117 KB · Affichages: 57

boudoula

XLDnaute Nouveau
Re : Detection de doublons

en effet les !!!! ne servent à rien pas plus que la remarque sur "La recherche sur le forum m'a pris 2 mns", je suis novice et une chose évidente pour certain ne l'es pas forcement pour d'autre.
Merci pour la proposition qui à l'air de tres bien fonctionner
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Detection de doublons

Bonjour,

Voir pj

Code:
Sub doublonsChampCmt()
  couleurs = Array(0, 1, 3, 4, 7, 8, 14, 15, 16, 17, 21, 22, 23, 25, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 50, 53)
  Set champ = Range("A1:W100")
  champ.Interior.ColorIndex = xlNone
  champ.ClearComments
  Set d = CreateObject("Scripting.Dictionary")
  Set d2 = CreateObject("Scripting.Dictionary")
  For Each c In champ
    If c.Value <> "" Then
      d.Item(c.Value) = d.Item(c.Value) + 1
      d2.Item(c.Value) = _
         d2.Item(c.Value) & c.Address & " "
    End If
  Next c
  For Each c In champ
    If d.Item(c.Value) > 1 Then
       nocoul = (Application.Match(c.Value, d.keys, 0)) Mod UBound(couleurs)
       c.Interior.ColorIndex = couleurs(nocoul)
       c.AddComment
       temp = c.Value
       c.Comment.Text Text:=Left(d2.Item(temp), Len(d2.Item(temp)) - 1)
       c.Comment.Shape.Left = c.Offset(, 1).Left + 10
       c.Comment.Shape.TextFrame.AutoSize = True
       c.Comment.Visible = True
    End If
  Next c
End Sub

http://boisgontierjacques.free.fr/fichiers/Cellules/DoublonsDetectionChamp.xls

JB
 

Pièces jointes

  • Classeur1.xls
    27.5 KB · Affichages: 72
  • Classeur1.xls
    27.5 KB · Affichages: 70
  • Classeur1.xls
    27.5 KB · Affichages: 72
  • Copie de Classeur2_97.xls
    136.5 KB · Affichages: 50
Dernière édition:

boudoula

XLDnaute Nouveau
Re : Detection de doublons

WAouh merci bien le code de BOISGONTIER à l'air de trop bien fonctionner et en plus le fichier n'est plus ralenti, un grand merci pour vos aides, certes je ne comprend rien sur comment marche le code, ça me fera une occupation à mes heures perdues.
 

Victor21

XLDnaute Barbatruc
Re : Detection de doublons

Bonsoir à tous.

Pour tenir compte de la précision -tardive- du demandeur
merci [...] mais la recherche de doublon se fait en ligne et non pas en ligne et en colonne !!!
et la remarque judicieuse de JNP :)
j'ai appris que les cellules vides n'étaient pas prises en compte par NB.SI
(Maintenant moi aussi, grâce à toi ;)) essayez :
=NB.SI($A1:$W1;A1)>1
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry