
Gibt es eine Möglichkeit, eine Formel als Zellenformat zu verwenden?
Soweit ich weiß, erlaubt die bedingte Formatierung nur statische Formatierungen, die auf der Grundlage bestimmter Bedingungen angewendet werden. Ich möchte, dass das Format selbst dynamisch ist. Ich möchte beispielsweise die Farbe einer Zelle als deren Inhalt festlegen (wenn der Zellenwert „rot“ ist, dann Rot als Farbe verwenden), ohne für jede Farbe eine Regel für die bedingte Formatierung festzulegen.
Ich weiß, dass dies mit einem Makro möglich ist, aber ich möchte nicht nach jeder Zelländerung ein Makro ausführen.
Antwort1
Ich glaube nicht, dass es hierfür eine Formel gibt, noch gibt es eine Option im Manager für bedingte Formatierung.
Sie können jedoch auch VBA verwenden. Hier ist eine kleine Funktion, die Ihnen den Einstieg erleichtert:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'Do nothing if more than one cell is updated, or if cell contents are deleted
If Target.Cells.Count > 1 Or IsEmpty(Target) Then
Exit Sub
End If
Select Case LCase(Target.Value)
Case "red"
newcolor = RGB(255, 0, 0)
Case "blue"
newcolor = RGB(0, 0, 255)
Case "chartreuse"
newcolor = RGB(0, 255, 0)
Case "lavender"
newcolor = RGB(224, 176, 255)
Case Else
newcolor = Target.Interior.Color
End Select
Target.Interior.Color = newcolor
Application.EnableEvents = True
End Sub
Benutzen:
- Drücken Sie Alt+ F11.
- Doppelklicken Sie im Projekt-Explorer (linker Bereich) auf das Arbeitsblatt, für das Sie die Formatierung anwenden möchten.
- Fügen Sie den Code in das Fenster ein.
Das Unterprogramm wird automatisch ausgeführt:
- Wenn Sie oben "rot", "blau", "chartreuse" oder "lavendel" eingeben inbeliebigZelle in diesem bestimmten Arbeitsblatt
- Wenn eine Formel inbeliebigZelle gibt entweder „rot“, „blau“, „Chartreuse“ oder „lavendel“ zurück.
Sie müssen die Funktion nicht jedes Mal manuell ausführen, wenn Sie Zellen einfärben müssen.
Sie können auch die Zellen einschränken, auf die diese Funktion "wirkt", indem Sie die Bedingung im WENN-Block ändern. Um beispielsweise Zellen in der SpalteCnur können Sie den IF-Block oben in ff ändern:
If Target.Cells.Count > 1 Or Target.Column <> 3 Then
Exit Sub
End If
Natürlich müssen Sie Ihre Arbeitsmappe als Dokument mit Makros speichern.
Antwort2
soweit ich weiß, geht es ohne Makro nicht, es sei denn, Sie fügen für jede Farbe ein bedingtes Format hinzu. Die gute Nachricht ist, dass es nicht lange dauern sollte, für jede verwendete Farbe ein Makro zu erstellen. Ich würde sagen, der Vorgang dauert etwa 5 Minuten.
Antwort3
Ich stimme dem anderen Poster darin zu, dass Sie wahrscheinlich ein Makro verwenden müssen. Sie müssen das Makro nicht jedes Mal manuell ausführen, da Sie es einemBlattwechselEreignis.
Klicken Sie auf Microsoft Excel Objects
Ihren Ordner VBA Project
im VBE und doppelklicken Sie dann auf , ThisWorkbook
um einen Code-Stub zu generieren. Wählen Sie Worksheet
auf der linken Seite und dann SheetChange
auf der rechten Seite aus.
Es kommt vor, dass das von mir verlinkte Beispiel dieses Ereignis verwendet, um die Farbe der Zelle zu steuern (Sie müssten den Code aktualisieren, um die Zeichenfolge "red"
, "green"
, "blue"
anstelle der Case-Anweisung mit den numerischen Werten zu verwenden).