doublons et couples de doublons

arvin

XLDnaute Occasionnel
bonjour à tous !

j'ai un souci après de multiples recherches sur le forum : je souhaiterai identifier des doublons qui figurent dans une liste , c'est plus compliqué qu'il n'y parait car les doublons peuvent être sur des cellules adjacentes
(j'ai essayé recherchev.....)

je joins un petit fichier

merci à tous
 

Pièces jointes

  • doublons.xlsx
    8.5 KB · Affichages: 50

arvin

XLDnaute Occasionnel
bonjour, c'est presque cela : il faudrait que la macro reconnaisse le couple (i1 et i2) -> les 2 ensembles c'est bon , que i1 ou que i2 pas la peine de colorier
j'ai remplacé par i1+i2 mais cela ne marche pas
(pas besoin de changer de couleur)
un grand merci
 

gosselien

XLDnaute Barbatruc
Bonjour,

inspiré largement de J. Boisgontier :

Sub GroupColorAdeps() ' permet de repérer facilement les doublons d'une liste (©) JB
Dim Couleurs, MonDico, C, Nocoul, Colonne, Zone, Fin, Lastc, Clé, Zone2
Couleurs = Array(6, 10, 13, 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")
Colonne = InputBox("Quelle colonne à regrouper par couleur " & Chr(10) & "en lettres, pas de chiffre !!!")
If Colonne = "" Then Exit Sub
If Not ColonneValideColonne) Then Exit Sub
' n'
Fin = Range(Colonne & "65000").End(xlUp).Row
Set Zone = Range(Colonne & "2", Colonne & Fin)
For Each C In Zone
If C <> "" Then MonDico.Item(C.Value) = MonDico.Item(C.Value) + 1
Next C
Lastc = Range("IV4").End(xlToLeft).Column
For Each C In Zone
If C <> "" Then
Nocoul = (Application.Match(C.Value, MonDico.Keys, 0)) Mod UBound(Couleurs)
Range(Cells(C.Row, 1), Cells(C.Row, Lastc)).Interior.ColorIndex = Couleurs(Nocoul)
End If
Next C
[A1].Select
End Sub

Fonction à ajouter

Function ColonneValide (Col) As Boolean
' avec l'aide De Frédéric Sigonneau [frederic.sigonneau@wanadoo.fr]
Col = UCase(Col)
Select Case Len(Col)
Case 1
ColonneValideAdeps = Col Like "[A-Z]"
Case 2
ColonneValideAdeps = Left(Col, 1) Like "[A-Z]" And Right(Col, 1) Like "[A-Z]"
Case 3
ColonneValideAdeps = Left(Col, 1) Like "[A-Z]" And Right(Col, 1) Like "[X-D]"
End Select
End Function
 
Dernière édition:

arvin

XLDnaute Occasionnel
Bonjour

merci à tous pour vos contributions , cela fait vraiment plaisir : je retiens le super boulot de Jacky67 c'est pile poil ce que je voulais . Par contre, il y a environ 50 colonnes à tester , serait il possible de faire un private sub ou alors comment je peux faire pour tester toutes les colonnes
For Each c In Range("b1:b" & Cells(Rows.Count, "A").End(xlUp).Row) ? je place c1:c ; d1:d ......
merci beaucoup
 

Jacky67

XLDnaute Barbatruc
merci à tous pour vos contributions , cela fait vraiment plaisir : je retiens le super boulot de Jacky67 c'est pile poil ce que je voulais . Par contre, il y a environ 50 colonnes à tester , serait il possible de faire un private sub ou alors comment je peux faire pour tester toutes les colonnes
Re..
Donne un exemple sur l'organisation des données dans le classeur final
JJ
 

arvin

XLDnaute Occasionnel
bonjour

tout marchait poil et depuis hier j'ai crée une nouvelle plage et cela ne marche pas : je comprends pas pourtant ? est ce ma version d'excel ? cij joint le fichier (j'ai bien nommé une plage10... et modifier la macro)
 

Pièces jointes

  • Copie de doublons3.xlsm
    23.3 KB · Affichages: 45

Paf

XLDnaute Barbatruc
Bonjour arvin,

Si j'ai bien compris, a priori le code n'est pas en cause .

En feuille Feuil1, on met les couples de cellules, correspondant aux plages définies, de la couleur de la plage.
Or vous n'avez pas "colorier" la plage10 !!

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 690
Membres
103 640
dernier inscrit
So pizza