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:
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:
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