Excel: Formel im Zellenformat verwenden

Excel: Formel im Zellenformat verwenden

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:

  1. Drücken Sie Alt+ F11.
  2. Doppelklicken Sie im Projekt-Explorer (linker Bereich) auf das Arbeitsblatt, für das Sie die Formatierung anwenden möchten.
  3. 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 ObjectsIhren Ordner VBA Projectim VBE und doppelklicken Sie dann auf , ThisWorkbookum einen Code-Stub zu generieren. Wählen Sie Worksheetauf der linken Seite und dann SheetChangeauf der rechten Seite aus.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

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).

verwandte Informationen