Recherche doublon

bonjour a Tous

ci joint mon fichier Excel , j’ai besoin de trouver des doublons (texte) dans la colonne B . bien sur une couleur par groupe de doublon

je ne sais pas comment me prendre ?

j'ai essayé un code , mais j'ai toujours cette erreur : nocoul = (Application.Match(c.Value, d.keys, 0)) Mod UBound(couleurs).

merci de Votre Aide

2dpgf0.xlsx (115.67 Ko)

Bonjour nmoro et bienvenue,

On ne va pas pouvoir t'aider beaucoup, si on ne dispose que d'une ligne de code

Pourquoi ne pas joindre le fichier avec le code complet ?

Bonjour U.Milité

ci joint le fichier avec le code complet

10dpgf-1.xlsm (124.92 Ko)

Re-bonjour,

Je présume que tu as adapté une partie du code ... sans être certain de ce que tu faisais?

Ça ressemble assez à ce que Jacques Boisgontier propose sur son site (si c'est là que tu as trouvé le code, l'usage veut qu'on cite ses sources)

Dans une première boucle, tu "garnis" un objet "Dictionary" avec le contenu de la colonne B.

Dans une seconde boucle, tu cherches la position -parmi les clés du Dictionary- de chaque valeur figurant ... en colonne A il est donc assez normal que tu obtiennes une erreur!

J'ai par contre été surpris de découvrir (d'autres le savaient sans doute) que le traitement de chaînes de caractères de plus de 250 caractères posait problème ... j'ai donc dû adapter le code, moi aussi!

Ceci étant, avec 722 valeurs uniques, il y a tout de même des couleurs qui reviennent un certain nombre de fois (parmi les 30 du tableau). Par ailleurs, je ne sais pas toi, mais une police noire sur un remplissage noir ... j'ai un peu de mal à distinguer le texte Il y a sans doute, dans les index de couleurs des résultats fort similaires, voire identiques.

Teste ce code:

Sub GroupColor()
  couleurs = Array(1, 3, 4, 6, 7, 8, 14, 15, 17, 20, 22, 24, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 50, 53)
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("B2", [b65000].End(xlUp))
    If c <> "" Then mondico.Item(Left(c.Value, 250)) = mondico.Item(Left(c.Value, 250)) + 1
  Next c
  For Each c In Range("b2", [b65000].End(xlUp))
   If c <> "" Then
     nocoul = (Application.Match(Left(c.Value, 250), mondico.keys, 0)) Mod UBound(couleurs)
     If mondico.Item(Left(c.Value, 250)) > 1 Then c.Interior.ColorIndex = couleurs(nocoul)
   End If
  Next c
End Sub

Re-bonjour MR U.Milité

oui après plusieurs recherche a ma solution , effectivement j'ai trouvé le code sur le site de Jacques Boisgontier : http://boisgontierjacques.free.fr/pages_site/Doublons.htm#ColorGroup.

apres pour le reste , que te dire , merci , un grand merci . le code fonctionne parfaitement . gain de temps considérable pour moi par rapport a ce que je veux faire .

tu es un chef.

Merci d'avoir rendu à César ...

Tu ne dis pas ce que tu penses du remplissage noir, ni des paires de couleurs identiques dans la série ?

Je ne sais pas si tu repasseras par ici et donc, à toutes fins utiles, dans le fichier joint, tu trouveras les 56 couleurs disponibles avec les ColorIndex.

Comme tu le verras, le noir correspond au 1 ... si tu ne veux pas de remplissage noir, il suffit donc de supprimer le 1 du tableau "couleurs", au début du code. Si une des couleurs disponibles te convient, il suffit d'ajouter le nombre figurant en colonne A, en regard de cette couleur.

Les nombres en gras et rouge sont ceux que tu utilises déjà.

Bonne continuation

5colorindex.xlsx (10.79 Ko)
Rechercher des sujets similaires à "recherche doublon"