doublons et couples de doublons

  • Initiateur de la discussion Initiateur de la discussion arvin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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:
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
 
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
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
497
Retour