Automatisches Füllen von Farben entsprechend den Werten in der Zelle im Arbeitsblatt

Automatisches Füllen von Farben entsprechend den Werten in der Zelle im Arbeitsblatt

Frage :Ist es möglich, jede Zelle in einer Tabelle mit einer Farbe zu füllen, deren Graustufenwert dem Zellenwert entspricht?

Erläuterung :

Angenommen, ich habe eine Kalkulationstabelle wie folgt:

Bildbeschreibung hier eingeben

Alle Werte liegen zwischen 0 und 255 (was 256 Graustufenfarben entspricht). Jetzt möchte ich jede Zelle mit der Farbe füllen, deren Wert dem Wert in der Zelle entspricht. Die erwartete Ausgabe ist also wie folgt:

Bildbeschreibung hier eingeben

Achten Sie außerdem darauf, dass die Schriftfarbe in jeder Zelle entsprechend der Hintergrundfarbe entweder schwarz oder weiß ist.

Gibt es in Excel eine einfache Methode, dies in sehr wenigen Schritten oder auf einmal durchzuführen?

Antwort1

Erstellen Sie ein Makro, das Ihre Zellen durchläuft, den Wert in der Zelle liest und ihn wie folgt der Farbe zuweist:

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

Antwort2

TheUser1024 hat recht und bekommt meine Stimme.

Hier ist eine gebrauchsfertige Lösung:

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

Bearbeiten:

Dieser Code wird bei Zeichenfolgen oder negativen Werten nicht unterbrochen ...

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

verwandte Informationen