Colorer Ligne doublon

  • Initiateur de la discussion Initiateur de la discussion kaki31
  • 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 !

kaki31

XLDnaute Occasionnel
Bonjour:

Comment faire pour colorer des lignes ( de la colonne A a la colonne H ) avec différentes couleurs ? sans utiliser la couleur rouge que j'utiliserai pour autres choses.

Merci.
🙂
 

Pièces jointes

Dernière édition:
Re : Colorer Ligne doublon

Bonjour à tous,

Tu me coupes l'herbe sous le pied DoubleZero 🙂🙂
Normal pour un âne 😀

VB:
Sub Mise_en_Forme_des_Doublons()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("A1", [A65000].End(xlUp))
     mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  For Each c In Range("A1", [A65000].End(xlUp))
    c.Resize(, 8).Interior.ColorIndex = 0
    If mondico.Item(c.Value) > 1 Then c.Resize(, 8).Interior.ColorIndex = Application.Match(c.Value, mondico.keys, 0) + 1
  Next c
End Sub

Dans ce cas, le rouge est réservé pour la ligne numérotée 23, mais comme elle est unique : nada

Klin89
 
Re : Colorer Ligne doublon

Re kaki31

On peut décliner le code à l'aide d'un Select Case pour choisir les couleurs en fonction de tes valeurs.

VB:
Sub Mise_en_Forme_des_Doublons()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("A1", [A65000].End(xlUp))
     mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  For Each c In Range("A1", [A65000].End(xlUp))
    c.Resize(, 8).Interior.ColorIndex = 0
    If mondico.Item(c.Value) > 1 Then
    Select Case c.Value
       Case 22
         c.Resize(, 8).Interior.ColorIndex = 27
        Case 23
         c.Resize(, 8).Interior.ColorIndex = 5
        Case 24
          c.Resize(, 8).Interior.ColorIndex = 3  'rouge
        Case 25
          c.Resize(, 8).Interior.ColorIndex = 7
        Case 26
          c.Resize(, 8).Interior.ColorIndex = 8
        Case 27
          c.Resize(, 8).Interior.ColorIndex = 42 'vert
        Case 28
          c.Resize(, 8).Interior.ColorIndex = 10
        Case 29
          c.Resize(, 8).Interior.ColorIndex = 11
        Case 30
          c.Resize(, 8).Interior.ColorIndex = 12
        Case 31
          c.Resize(, 8).Interior.ColorIndex = 13
          'ETC.....
      End Select
    End If
  Next c
End Sub

Klin89
 
Re : Colorer Ligne doublon

Re kaki31

Il n'y a que 56 couleurs, tu ne vas pas aller très loin en effet.
Sinon vois la syntaxe du Select Case

Code:
Select Case c.Value 
        Case 22, 26, 30 
           c.Resize(, 8).Interior.ColorIndex = 27
        Case 24, 28, 32
           c.Resize(, 8).Interior.ColorIndex = 11

Klin89

Edit : dans le lien proposé par DoubleZero, vois le post #7 et reprend la solution de Boisgontier pour extraire tes doublons.
 
Dernière édition:
Re : Colorer Ligne doublon

Re Klin89,

L'utilisation de 4 ou 5 couleurs est largement suffisant (sans la couleur rouge) mais qu'ils soient

séparés, c'est a dire que je puisse distinguer les doublons les uns des autres s'ils se suivent.

En grosso modo , c'est pour distinguer les doublons, et a mon avis l'utilisation de la couleur et la meilleure façon, mais il arrive des fois que deux doublons se suivent ce qui rend leur détection difficile du moment qu'ils ont la même couleur. Je remercie Klin89 pour son aide le seul souci est l'utilisation des couleur foncées qui masquent le texte des cellules.

Est il possible de limiter l'utilisation de couleurs(claires) a 5 dans le fichier du post #6 ?
🙂
 
Dernière édition:
Re : Colorer Ligne doublon

Bonsoir à tous,

J'ai alterné la couleur des doublons avec 2 couleurs.
A tester et me corriger si l'on peut mieux faire 🙂

VB:
Sub Mise_en_Forme_des_Doublons()
  Set mondico = CreateObject("Scripting.Dictionary")
  couleur = 43
  For Each c In Range("A1", [A65000].End(xlUp))
     mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  For Each c In Range("A1", [A65000].End(xlUp))
    c.Resize(, 8).Interior.ColorIndex = 0
    If mondico.Item(c.Value) > 1 Then
      On Error Resume Next
      If Cells(c.Row, 1) <> Cells(c.Row - 1, 1) Then couleur = IIf(couleur = 43, 17, 43)
      On Error GoTo 0
      Cells(c.Row, 1).Resize(, 8).Interior.ColorIndex = couleur
    End If
  Next c
End Sub

Je ne sais pas alterner avec 5 couleurs différentes.

Klin89
 
Dernière édition:
- 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
1
Affichages
150
Réponses
11
Affichages
361
Réponses
7
Affichages
179
Retour