4 votes

Remplissage automatique des couleurs en fonction des valeurs de la cellule dans la feuille de calcul.

Question : Est-il possible de remplir chaque cellule d'une feuille de calcul avec une couleur dont la valeur en niveaux de gris est identique à la valeur de la cellule ?

Explication :

Considérons que j'ai une feuille de calcul comme suit :

enter image description here

Toutes les valeurs sont comprises entre 0 et 255 (ce qui correspond à 256 couleurs en niveaux de gris). Maintenant je veux remplir chaque cellule avec la couleur dont la valeur est la valeur dans la cellule. Le résultat attendu est donc le suivant :

enter image description here

Vous pouvez également constater que la couleur de la police dans chaque cellule est soit noire soit blanche, ce qui correspond à la couleur de fond.

Existe-t-il une méthode simple dans Excel pour effectuer cette opération en quelques étapes ou en une seule fois ?

5voto

Freddy Points 667

Créez une macro qui parcourt vos cellules, lit la valeur dans la cellule et l'attribue à la couleur comme ceci :

Range("A1:A6").Interior.Color = RGB(200,160,35)

3voto

Jook Points 1865

TheUser1024 a raison, et a mon vote.

Voici une solution prête à l'emploi :

Public Sub Demo()
  Dim cel As Range
  Dim myRange As Range

  Set myRange = Range("A1:E10")

  For Each cel In myRange
    cel.Interior.Color = RGB(cel.Value, cel.Value, cel.Value)
    If cel.Value > 127 Then
      cel.Font.Color = RGB(0, 0, 0)
    Else
      cel.Font.Color = RGB(255, 255, 255)
    End If
  Next cel
End Sub

Editar:

Ce code ne sera pas cassé en cas de chaînes de caractères ou de valeurs négatives ...

Public Sub Demo()
  Dim cel As Range
  Dim greytone As Long
  Dim myRange As Range

  Set myRange = Range("A1:E10")

  For Each cel In myRange
    greytone = CLng(Abs(Val(cel.Value)))
    cel.Interior.Color = RGB(greytone, greytone, greytone)
    If greytone > 127 Then
      cel.Font.Color = RGB(0, 0, 0)
    Else
      cel.Font.Color = RGB(255, 255, 255)
    End If
  Next cel
End Sub

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X