Excel: Abfrage, ob Zelle eine Formel enthält

Hallo!

Ich hab da ein spezielles Problem. Ich muss mithilfe einer bedingten Formatierung die Schriftfarbe von ein paar Zellen automatisch ändern lassen. Diese Zellen holen sich die Werte aus einem anderen Tabellenblatt. Die Farbe in diesen Zellen soll sich aber NUR ändern, wenn ich sie mit der Hand überschreibe (Randhinweis: mit einem Button fülle ich die Zellen wieder mit der entsprechenden Formel - die ja überschrieben wird, wenn ich einen Wert händisch eingebe). Die Logik meiner bedingten Formatierung wäre nun

WENN Zelleninhalt = eine Formel DANN Schriftfarbe=blau SONST Schriftfarbe=rot

Ich wüsste aber nicht, wie man das realisieren kann.
WIE KANN MAN EINE ZELLE DARAUF ABFRAGEN, OB SIE EINE FORMEL ENTHÄLT, ODER EINE ZAHL BSPW.?

Für jeden Tipp bin ich dankbar,
Andi

WENN Zelleninhalt = eine Formel DANN Schriftfarbe=blau SONST
Schriftfarbe=rot

Hi Andi,
2 bed. Formatierungen für A1:
Formel ist
=tt(A1)
Farbe blau

Formel ist
=Nicht(tt(A1))
Farbe rot

Die Funktion dazu:

Option Explicit
Function tt(Zelle As Range) 'As Boolean
tt = Zelle.HasFormula
End Function

Gruß
Reinhard

Danke für die schnelle Antwort.

Leider funktioniert die bed. Form. =tt(A1) bei mir nicht. Ich hab den Sourcecode im VBA-Editor unter „DieseArbeitsmappe“ reingeschrieben. Ist doch richtig, oder? Hab’s auch in jedes Tabellenblatt reingeschrieben, funktioniert trotzdem nicht.

Andere Frage … ich hab doch nicht immer A1, sondern einen ganzen Bereich. Wie kann ich in einer bed. Form. einen Bereich angeben? Oder sagen wir es anders … ich will nicht bei der

  1. Zelle die bed. Form. =tt(A1)
  2. Zelle die bed. Form. =tt(A2)
  3. Zelle die bed. Form. =tt(A3)
  4. Zelle die bed. Form. =tt(B1)
  5. Zelle die bed. Form. =tt(B2)
    … händisch eingeben. Das wären einfach zu viele :smile:

Kann man das in den bed. Form. irgendwie angeben?

Bis bald und schönes Wochenende,
Andi

Hi Andi,
2 bed. Formatierungen für A1:
Formel ist
=tt(A1)
Farbe blau

Formel ist
=Nicht(tt(A1))
Farbe rot

Die Funktion dazu:

Option Explicit
Function tt(Zelle As Range) 'As Boolean
tt = Zelle.HasFormula
End Function

Gruß
Reinhard

Hi Andi,

Leider funktioniert die bed. Form. =tt(A1) bei mir nicht. Ich
hab den Sourcecode im VBA-Editor unter „DieseArbeitsmappe“
reingeschrieben. Ist doch richtig, oder? Hab’s auch in jedes
Tabellenblatt reingeschrieben, funktioniert trotzdem nicht.

Einfügen–Modul, dahin den Code.

Andere Frage … ich hab doch nicht immer A1, sondern einen
ganzen Bereich. Wie kann ich in einer bed. Form. einen Bereich
angeben? Oder sagen wir es anders … ich will nicht bei der

Markiere A1:A10, erstelle die bed. Formatierung =tt(A1), Excel passt das automatisch an, also in A9 steht dann als bed.Formatierungsformel =tt(A9)
Gruß
Reinhard

Einfügen–Modul, dahin den Code.

Markiere A1:A10, erstelle die bed. Formatierung =tt(A1), Excel
passt das automatisch an, also in A9 steht dann als
bed.Formatierungsformel =tt(A9)
Gruß
Reinhard

Wunderbar!

Es klappt alles einwandfrei.

Vielen Dank nochmal,
du hast einen meiner User (und mich) sehr glücklich gemacht :smile:)

Nein, im Ernst, er erspart sich dadurch einiges an Zeit und sieht auf einen Blick, wenn wer was geändert hat.

Danke nochmal,
Andi