Formatieren Sie eine Zelle bedingt, wenn sie eine Formel enthält

18

Ist es möglich, eine Zelle bedingt zu formatieren, wenn die Zelle eine Formel enthält (um mich und andere Benutzer beim Aktualisieren der Zelle zu benachrichtigen)?

Wilson
quelle
Wenn Sie nur schnell sehen möchten, welche Zellen Formeln enthalten, können Sie Strg-`(das ist ein Back-Tick auf derselben Taste wie ~ auf englischen Tastaturen) eingeben, um Formeln anzuzeigen. Drücken Sie die Taste erneut, um umzuschalten.
Yoyo

Antworten:

9

Sie können dazu die bedingte Formatierung verwenden, indem Sie XLM- und Bereichsnamen verwenden

Ich habe einen längeren Artikel über die Verwendung von XLM mit Bereichsnamen und bedingter Formatierung zum automatischen Formatieren von Arbeitsblättern entsprechend dem Zelleninhalt

  1. Definiere einen Bereichsnamen IsFormula = GET.CELL (48, INDIRECT ("rc", FALSE))
  2. Wenden Sie eine bedingte Formatierungszelle an, die auf die Formel testet, dh = IsFormula mit einer Farbfüllung
brettdj
quelle
Entschuldigung, ich habe Ihre Antwort bis jetzt noch nicht getestet. Dieser Trick ist einfach und schön. Akzeptiert! Vielen Dank. (Übrigens ist die Verbindung unterbrochen.)
Wilson
Getestet und es funktioniert! Ich musste die richtige Definition für die italienische Version von Excel 2007 finden. Wenn Sie über italienisches Excel verfügen, müssen Sie = INFO.CELLA (48; INDIRETTO ("rc"; FALSO)) verwenden (bitte auch Semikolon anstelle von Kommas beachten)
Kar.ma
Der schlechte Teil ist, dass Sie es als Makrodatei (z. B. .xlsm) speichern müssen. Wenn Sie die Datei öffnen, wird die Farbe erst angezeigt, wenn Sie Makros aktivieren.
Kar.ma
Früher konnten Sie xlmohne Makrowarnungen arbeiten, MSFT hat den Sicherheitsansatz geändert.
Brettdj
10

Aufbauend auf der Antwort von brettdj, weil ich den verlinkten Artikel ziemlich schwer zu folgen fand:

  1. Erstellen Sie eine neue Regel für die bedingte Formatierung und wählen Sie Formel verwenden, um zu bestimmen, welche Zellen formatiert werden sollen
  2. Fügen Sie die folgende Formel ein: =ISFORMULA(INDIRECT("rc",FALSE))
  3. Wenn die Regel auf das gesamte Arbeitsblatt angewendet werden soll, geben Sie $1:$1048576den Bereich an, auf den angewendet werden soll . Andernfalls können Sie einen beliebigen Bereich eingeben.

Die Formel INDIRECT("rc",FALSE)gibt die Referenz der aktuellen Zelle zurück. Wenn ich dies jemals in einem Blatt verwende, erstelle ich einen definierten Namen mit dem Namen ThisCellund verwende diesen in der Formel, nur für den Fall, dass ich Jahre später zurückkomme und mir überlege, wofür zum Teufel das ist.

Toryan
quelle
Dies ist die richtige Antwort für Excel 2013 und höher, siehe support.office.com/en-us/article/…
Anishpatel
Verwenden Sie stattdessen INDIRECT("rc",FALSE)die relative Referenzierung mit der oberen linken Zelle in Ihrem bedingten Formatierungsbereich "Gilt für". Wenn Ihr Bereich "Gilt für" beispielsweise lautet =$A$3:$F$300, verwenden Sie =ISFORMULA(A3). Das funktioniert , weil die bedingte Formatierung unterstützt relative Referenzierung finden Sie diesen
Micah Lindström
4

Sie können diese versuchen:

VBA

Erstellen Sie eine benutzerdefinierte Funktion mit dem folgenden Code:

Function IsFormula(ByVal Ref As Range) As Variant
    If Ref.Cells.Count > 1 Then
        IsFormula = CVErr(xlErrNA)
    Else
        IsFormula = Ref.HasFormula
    End If
End Function

Beispiel:

So überprüfen Sie, ob Zellen in Spalte A Formeln haben:

  1. Markieren Sie die Spalte A
  2. Gehen Sie zu Bedingte Formatierung > Neue Regel > Verwenden Sie eine Formel, um zu bestimmen, welche Zellen formatiert werden sollen
  3. Verwenden Sie die ff. Formel:=IsFormula(A1)

Nicht-VBA

  1. Drücken Sie F5oder Ctrl+G
  2. Klicken Sie auf Spezial .
  3. Wählen Sie Formeln und klicken Sie auf OK . Dadurch werden alle Zellen im Arbeitsblatt hervorgehoben, die Formeln enthalten.
  4. Richten Sie das gewünschte Format ein.
    Oder
    Wechseln Sie zu Zellstile (auf der Registerkarte Start) und wählen Sie einen Stil aus, den Sie mit formelhaltigen Zellen verknüpfen möchten. Um das zu ändern Look-and-Feel der rechten Maustaste auf den Stil, den Sie ausgewählt und klicken Sie auf Ändern . Alle Zellen mit diesem Stil werden automatisch aktualisiert.
Ellesa
quelle
Obwohl ich persönlich VBA nicht bevorzuge, ist die VBA-Lösung in diesem Fall besser, da die Zellenformatierung dynamisch geändert werden kann, wenn eine Formel in eine Zelle eingegeben wird (oder umgekehrt). Vielen Dank.
Wilson
4

Es gibt eine sehr einfache Methode, die in Excel 2016 getestet wurde.

Markieren Sie Ihren Bereich, für den dies gelten soll, beispielsweise von A3:W20. Gehen Sie zur bedingten Formatierung und wählen Sie NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT.

Geben =isformula(A3)Sie das gewünschte Format ein und wählen Sie es aus.

A3ist offensichtlich ein Verweis auf die erste Zelle in Ihrem Bereich, aber diese Formatierung gilt dann für alle. Das Ergebnis ist, dass in Ihrem Bereich jede Zelle, die eine Formel ist, bedingt formatiert wird.

Joe Dog
quelle
+1 Auf Excel 2013 und
höher
1

Die neueren Hilfeseiten empfehlen eine benutzerdefinierte Funktion:

Function IsFormula(cell) as boolean 
  IsFormula = cell.HasFormula
End Function

Verwenden Sie dann diese Funktion als Ihre Bedingung

Und in der Tat hat Excel 2013 und höher IsFormulaals Standardfunktion.

Carl Witthoft
quelle
-1

Sie können auch die bedingte Formatierung verwenden:

  1. Wählen Sie den Zellenbereich aus, auf den Sie die bedingte Formatierung anwenden möchten
  2. In Start -> Bedingte Formatierung -> Neue Regel: Verwenden Sie eine Formel, um zu ermitteln, welche Zelle formatiert werden soll
  3. In Formatwerte, wenn diese Formel wahr ist, schreiben Sie: =HasNoFormula
  4. Wählen Sie das gewünschte Format

Getestet mit Excel 2010.

Deconinck Florian
quelle
Ihre Antwort ist unvollständig. Ich glaube nicht, dass Sie getestet haben.
Wilson
2
-1, das macht nichts. Was soll = HasNoFormula tun?
Toryan