1. Möglichkeit ohne VBA
Um zu ermitteln, ob eine Formel in einer bestimmten Zelle steht, gibt es 2 Möglichkeiten.
Bei der ersten Möglichkeit wird dies ohne VBA festgestellt, also nur mit Bord-Mitteln.
Dazu gehen Sie wie folgt vor:
- Einfügen --> Name --> Definieren....
- Unter 'Namen in der Arbeitsmappe' geben Sie den gewünschten Namen ein, z. B. formel
- Unter bezieht sich auf erfassen Sie folgende Funktion: =ZELLE.ZUORDNEN(48;!B1)+0*JETZT()
- Mit der Funktion =formel bekommen Sie nun eine 0 als Ergebnis, wenn sich keine Formeln in B1 befindet und eine 1 wenn sich eine Formeln in B1 befindet.
- Mit einer einfachen Wenn-Abfrage können Sie diese 1 bzw. 0 noch in verständlichen Text umwandeln: Die Funktion dazu lautet: =WENN(formel=0;"W";"F")
Das war auch schon. Aufpassen müssen Sie nur mit dem Funktionsbestandteil, der hier B1 lautet.
Da diese Zelle als relative Zelle angegeben wurde, beziehen sich zukünftige Abfragen immer auf die Zelle rechts neben der abzufragenden. Möchten Sie bspw. die Zelle F1 abfragen, so müssen Sie die Abfrage in der Zelle E1 vornehmen, da immer die rechte Zelle abgefragt wird.
2. Möglichkeit mit VBA
Die zweite Möglichkeit um zu erfahren, ob in einer bestimmten Zelle eine Formel steht, ist die Abfrage per VBA.
Die nachfolgende Funktion prüft dies ab und gibt ein F zurück, wenn sich in der abgefragten Zelle eine Formel befindet und wenn nicht, wird ein W zurückgeliefert.
Public Function FORM(wert)
'Prüfen, ob sich in einer Zelle ein Wert oder
'eine Funktion (Formel) befindet
'Abfrage mit form(A1)
If wert.HasFormula = True Then
FORM = "F"
Else
FORM = "W"
End If
End Function
Möchten Sie z. B. prüfen, ob sich in der Zelle D7 ein Wert oder eine Funktion befindet dann tragen Sie in eine beliebige Zelle einfach die neue Funktion ein und verweisen auf die Zelle D7: =FORM(D7)