Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formel oder "normale Zahl in Zelle?

Forumthread: Formel oder "normale Zahl in Zelle?

Formel oder "normale Zahl in Zelle?
12.08.2003 10:12:46
Kay
Hola zusammen,
wie kann ich mit VBA oder mit einer Formel Abfrage prüfen, ob in den Zellen L10 bis L20 im Tabellenblatt "Übersicht" Formeln oder normale Zaheln stehen? Schön wäre es, wenn mir in der Spalte T jeweils angezeigt werden würde, ob es sich in Spalte L jeweils um eine Formel oder Zahl handelt.
Ich habe schon in der Recherche gestöbert, aber nur folgendes gefunden, was mir jedoch nicht weitergeholfen hat:

Sub Keine_Formeln()
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 3).Copy Destination:=Worksheets("Übersicht").Range("L10")
Application.CutCopyMode = False
End Sub

Würde mich riesig über eine Antwort freuen.
Liebsten Gruß,
Kay.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel oder "normale Zahl in Zelle?
12.08.2003 10:27:56
PeterW
Hallo Kay,
schau dir in der VBA-Hilfe mal die Eigenschaft HasFormula an.
Gruß
Peter

AW: Formel oder "normale Zahl in Zelle?
12.08.2003 10:39:43
Kay
Hola Peter,
vielen Dank,
ich habe durch deine Antwort schon mal den entsprechenden VBA Code gefunden, da ich nun wusste, wonach ich suchen musste. :o)
Option Explicit

Sub FormelDrin()
If ActiveCell.HasFormula = True Then
MsgBox "Die aktive Zelle enthält eine Formel."
Else
MsgBox "Die aktive Zelle enthält keine Formel."
End If
End Sub

Kann mir jetzt noch jemand sagen, wie ich diesen Code vielleicht so modifiziere, bzw. automatisch aufrufe, so dass wir in Spalte T geschrieben wird, ob die Zellen in Splate L nun aus Zahlen oder Formeln bestehen?
Liebsten Gruß und Dank,
Kay.

Anzeige
AW: Formel oder "normale Zahl in Zelle?
12.08.2003 10:44:49
sergiesam
Hi,
das ist natürlich noch eine schönere Lösung:
https://www.herber.de/bbs/user/531.xls

Function EnthältFormeln(bereich As Range) As Boolean
Dim c As Range
For Each c In bereich
If c.HasFormula Then
EnthältFormeln = True
Exit Function
End If
Next c
EnthältFormeln = False
End Function

Gruß,
Sam

Anzeige
AW: Formel oder "normale Zahl in Zelle?
12.08.2003 10:45:39
Kay
Hola Peter,
habe mir gerade selber weiterhelfen können, da dein Tipp mir den richtigen Suchbegriff bei Googel gezeigt hat...
Also, nochmals danke und hier für das archiev, falls mal jemand das gleiche Problem hat.
Liebsten Gruß,
Kay.
Excel bietet viele integrierte Tabellenfunktionen, die den Inhalt einer Zelle (eine Zahl, eine Textfolge, einen Fehlerwert usw.) überprüfen. Excel bietet jedoch keine Funktion, die überprüft, ob eine Zelle eine Formel enthält. Wenn die Zelle einen konstanten Wert enthält, liefern diese Informationsfunktionen den Typ des Wertes. Wenn die Zelle jedoch eine Formel enthält, liefern die Informationsfunktionen den Typ des berechneten Wertes der Formel.
Eine benutzerdefinierte Funktion, IsFormula()
Die folgende benutzerdefinierte Tabellenfunktion, IsFormula(), ist ähnlich wie die anderen integrierten IST-Funktionen in Excel. Wenn Sie diese Funktion in eine Zelle eingeben, ist das eine Argument, das von der Funktion akzeptiert wird, das Ref-Argument, ein Bezug auf eine einzelne Zelle oder einen Zellenbereich. Wenn Sie einen Bezug auf eine einzelne Zelle eingeben, liefert die Funktion den Wert WAHR, wenn die Zelle eine Formel enthält. Wenn die Zelle keine Formel enthält (sie entweder leer ist oder einen beliebigen Wert, z. B. eine Zahl oder ein Datum, enthält), liefert IsFormula() den Wert FALSCH.
Um zu überprüfen, ob eine Zelle oder ein Zellenbereich Formeln enthält, verwendet die benutzerdefinierte Funktion die Eigenschaft HasFormula des Bereichs, der an die Funktion übergeben wird. Die folgende Tabelle enthält eine Liste der möglichen Rückgabewerte für die Eigenschaft:
Wert Bedeutung
WAHR Alle Zellen im Bereich enthalten Formeln.
FALSCH Keine der Zellen im Bereich enthält eine Formel.
NULL Einige (aber nicht alle) Zellen enthalten Formeln (z. B. enthält eine Zelle eine Formel, die restlichen Zellen im Bereich jedoch nicht).
Nachdem die Eigenschaft drei unterschiedliche Ergebnisse liefern kann, verwendet die Funktion eine WENN-DANN-SONST-Bedingungsanweisung, um nur zwei mögliche Ergebnisse zu erzwingen: WAHR, wenn die Zelle eine Formel enthält oder ein Zellenbereich mindestens eine Formel enthält, und FALSCH, wenn die Zelle keine Formel enthält oder keine der Zellen im Bereich Formeln enthält.

Function IsFormula(ByVal Ref As Range) As Boolean
'This 

Function returns FALSE if no cells contain
'formulas, or TRUE if all or some cells contain
'formulas. Note that this 

Function only works
'with cells in adjacent ranges.
If Ref.HasFormula = False Then
IsFormula = False
Else
IsFormula = True
EndIf
End Function

Wie verwende ich diese Funktion?
Diese Funktion hat folgende Form:
ISFORMULA(Ref)
wobei Ref ein Bezug auf eine Zelle oder einen Bereich von Zellen ist.
Wenn z. B. die Zelle A3 die Formel =SUMME(A1:A2) enthält, dann ist
=ISFORMULA(A3)
gleich WAHR.

Anzeige
AW: Formel oder "normale Zahl in Zelle?
12.08.2003 10:40:04
sergiesam
Hi,
1) Du kannst Formeln oder Konstanten einfach markieren mit
"Bearbeiten" - "Gehe zu" - "Inhalte..." - "Formeln" oder "Konstanten"
wenn du vorher den Bereich L10-L20 markierst, sieht Excel nur in diesem Bereich nach.
2) du kannst diese Funktion einsetzen:

Function enthältFormeln(bereich As Range) As Boolean
Dim formelgefunden As Boolean, c As Range
For Each c In bereich
If Left(c.Formula, 1) = "=" Then
enthältFormeln = True
Exit Function
End If
Next c
enthältFormeln = False
End Function

In der Beispielmappe siehst du die Anwendung.
https://www.herber.de/bbs/user/530.xls
Viel Spaß
Sam

Anzeige
AW: Formel oder "normale Zahl in Zelle?
12.08.2003 10:44:33
Stephan
Hi Kay!
Folgender Code sollte es tun:

Sub zahloderformel()
Dim r As Range
For Each r In Range("L10:L20")
If r.HasFormula Then
r.Offset(0, 1).Value = "Formel"
End If
Next
End Sub


AW: Formel oder "normale Zahl in Zelle?
12.08.2003 10:48:43
Kay
Hola Sam und Stephan,
vielen Dank für eure Hilfe.
Diese Forum ist immer wieder großartig. Man bekommt so schnell die Lösungen... man kann gar nicht so schnell testen und antworten.
Danke und sonnigen Tag,
Kay.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Formel oder normale Zahl in Zelle prüfen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob in den Zellen L10 bis L20 im Tabellenblatt "Übersicht" Formeln oder normale Zahlen stehen, kannst du den folgenden VBA-Code verwenden. Dieser Code geht jede Zelle im Bereich durch und gibt in der benachbarten Zelle an, ob es sich um eine Formel oder eine normale Zahl handelt.

Sub zahlenOderFormelnPruefen()
    Dim r As Range
    For Each r In Range("L10:L20")
        If r.HasFormula Then
            r.Offset(0, 1).Value = "Formel"
        Else
            r.Offset(0, 1).Value = "Normale Zahl"
        End If
    Next r
End Sub

Führe diesen Code aus, um die gewünschte Information in Spalte T anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definiert Fehler."

    • Lösung: Stelle sicher, dass der Bereich "L10:L20" im aktiven Blatt vorhanden ist. Überprüfe die Schreibweise des Blattnamens.
  • Fehler: Es wird immer "Normale Zahl" angezeigt.

    • Lösung: Überprüfe, ob die Zellen tatsächlich Formeln enthalten. Du kannst dies manuell durch Auswahl der Zellen und Überprüfung der Formelleiste tun.

Alternative Methoden

  1. Verwendung der Funktion IsFormula(): Du kannst eine benutzerdefinierte Funktion erstellen, die prüft, ob eine Zelle eine Formel enthält. Hier ist ein Beispiel:

    Function IsFormula(ByVal Ref As Range) As Boolean
        IsFormula = Ref.HasFormula
    End Function

    Diese Funktion gibt WAHR zurück, wenn die Zelle eine Formel enthält, und FALSCH, wenn dies nicht der Fall ist.

  2. Excel-Funktionen nutzen: Du kannst auch die integrierte Excel-Funktion ISTFORMEL() verwenden, um zu überprüfen, ob eine Zelle eine Formel enthält. Diese Funktion ist in neueren Excel-Versionen verfügbar.


Praktische Beispiele

Angenommen, in Zelle L10 steht die Formel =SUMME(A1:A2) und in L11 steht die normale Zahl 5. Wenn du das Skript ausführst, wird in T10 "Formel" und in T11 "Normale Zahl" angezeigt.

Du kannst das Skript auch anpassen, um verschiedene Bereiche oder andere Spalten zu überprüfen, indem du einfach die Zellreferenzen änderst.


Tipps für Profis

  • Nutze die Application.ScreenUpdating-Eigenschaft, um die Bildschirmaktualisierung während der Ausführung deines Makros zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Wenn du mit großen Datenmengen arbeitest, erwäge, die Zellwerte in ein Array zu laden, um die Verarbeitung zu beschleunigen.


FAQ: Häufige Fragen

1. Wie kann ich in Excel prüfen, ob eine Zelle eine Zahl oder eine Formel enthält?
Du kannst VBA verwenden, um dies zu überprüfen, indem du die HasFormula-Eigenschaft anwendest oder die benutzerdefinierte Funktion IsFormula() nutzt.

2. Welche Excel-Version benötige ich, um die Funktion ISTFORMEL() zu verwenden?
Die Funktion ISTFORMEL() ist in Excel 2013 und neueren Versionen verfügbar. In älteren Versionen musst du VBA verwenden.

3. Kann ich die Prüfung auch für andere Zellbereiche durchführen?
Ja, du kannst den Bereich einfach anpassen, indem du die Referenzen in deinem VBA-Code änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige