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

Forumthread: Formel bezieht sich auf leere Zellen

Formel bezieht sich auf leere Zellen
Ulf
Hallo Ihr Excel-Profis,
folgende Situation habe ich: Meine Berechnungen greifen auf verschiedene
Eingabewerte und Formeln (vozugsweisw Sverweise) zu.
Nun kann es vorkommen, dass durch fehlende Eingaben Zellen leer sind da und
diese sich in meine Formeln mit Null "einschleichen".
Trotz fehlender Eingabe erhalte ich also ein mathematisch richtiges aber
inhaltlich falsches Ergebnis.
Unter Excel 2007 kann ich bei Optionen, Formeln, Regeln für die Formelprüfung
die Option "Formel bezieht sich auf leere Zellen" aktivieren.
Nun meine Frage:
Wie kann ich die Fehlerinformation
"Formel bezieht sich auf leere Zellen"
formelmäßig nutzen?
Ich suche eine Möglichkeit ohne VBA; so in Richtung "Istfehler()".
Und auch eine mit VBA; so in Richtung "Prüfe alle Formeln im Tabellenblatt... )
Danke
Ulf
Anzeige
AW: Formel bezieht sich auf leere Zellen
22.09.2010 09:45:55
JogyB
Hallo Ulf,
setzte das doch in eine WENN-Formel, bei der Du am Anfang die Werte überprüfst, so in der Art von:
=WENN((A1"")*(B1"");DEINEFORMEL;"Bitte Eingaben prüfen")
Eine VBA-Lösung ist problemlos möglich, solange die Zellen auf demselben Tabellenblatt sind. Wenn das gegeben ist, dann kann ich Dir schnell was basteln.
Gruß, Jogy
Anzeige
AW: Formel bezieht sich auf leere Zellen
Ulf
Danke Jogy,
Das mit Wenn(.. und "" .. ) mache ich schon bei jeder Eingabe ( das sind fast 100).
Mir kommt es auch drauf an, dass sich sonst keine falsche Null einschleicht.
Mit VBA ist sicher auch ne gute Alternative, könnte dann vor dem Drucken noch mal Prüfen.
Wenn Du mir etwas Starthilfe gibst wäre das toll.
Ulf
Anzeige
AW: Formel bezieht sich auf leere Zellen
22.09.2010 10:48:59
JogyB
Hallo Ulf,
Sub formelnPruefen()
Dim zeLLe As Range
Dim einGabeZelle As Range
Dim formelBezuege As Range
Dim firstMiss As Boolean
Dim meLdung As String
' Wirkt auf aktives Blatt, ggf. anpassen
With ActiveSheet
If Not .Cells.SpecialCells(xlCellTypeFormulas) Is Nothing Then
' Alle Zellen mit Formeln durchgehen
For Each zeLLe In .Cells.SpecialCells(xlCellTypeFormulas)
firstMiss = True
' Prüfen, ob Bezüge zu anderen Zellen vorhanden
On Error Resume Next
Set formelBezuege = zeLLe.Precedents
On Error GoTo 0
If Not formelBezuege Is Nothing Then
' Eingabewerte durchgehen
For Each einGabeZelle In formelBezuege
' Wenn Zelle leer
If IsEmpty(einGabeWert) Then
' Wenn es der erste leere Wert für diese Formel ist,
' dann erstmal den Fehlerstring starten
If firstMiss Then
meLdung = meLdung & IIf(meLdung = "", "", vbNewLine) & _
"Bei der Formel """ & zeLLe.FormulaLocal & _
""" in Zelle " & zeLLe.Address(False, False) & _
" sind folgende Eingabewerte leer: " & _
einGabeWert.Address(False, False)
firstMiss = False
' Ansonsten einfach weitere fehlende Zellen anhängen
Else
meLdung = meLdung & ", " & einGabeWert.Address(False, False)
End If
End If
Next
End If
Set formelBezuege = Nothing
Next
End If
End With
If meLdung  "" Then
MsgBox (meLdung)
Else
MsgBox ("Alles ok")
End If
End Sub

Wie gesagt: Das kann nur Bezüge auf demselben Tabellenblatt wie die Formel prüfen.
Gruß, Jogy
Anzeige
AW: Formel bezieht sich auf leere Zellen
Ulf
Danke Jogy,
danke klappt nach kleiner Änderung bei "einGabeWert.Address(False, False)" Wert -- Zelle
Da Du ein "alter" Profi bist noch eine Frage.
Bei manchen VBA-Routienen wird eine Formel(Sverweis) durch das Ergebnis der Formel ersetzt.
Also wo vorher Stand: =Sverweis(...,...,...) und 120 angezeigt wird steht dann direkt 120 in dieser Zelle.
Ich habe mich mit F8 versucht ranzutasten wann das passiert. Als ich dachte den Punkt gefunden zu haben habe ich das auskommentiert, dann passiert die Sache an einer anderen Stelle.
Ich Prüfe das jetzt immer mit Dienem Hinweis vom 16.09.10 und mit
If Not Sheets("...").Range("...").Formula = "=VLOOKUP(zelle,bereich,spalte,FALSE)" Then ...
und schreib die Formel nei rein.
Könnte Excel spinnen? Oder Ich?
Danke nochmals für Deine Hilfe
Ulf
Anzeige
AW: Formel bezieht sich auf leere Zellen
22.09.2010 13:15:08
JogyB
Hallo Ulf,
da habe ich wohl beim Suchen...Ersetzen nicht aufgepasst.
Zur anderen Frage: Wann passiert das denn? Beim jetzigen Code kann das eigentlich nicht sein, da gar nichts in irgendwelche Zellen geschrieben wird.
Gruß, Jogy
AW: Formel bezieht sich auf leere Zellen
Ulf
Jogy
das Verschwinden der Formel passiert nicht in dem Code, sondern in eimen
anderen recht komplexen Projekt.
Die Lösungen hier sind nur Maßnahmen mehr Sicherheit herzustellen.
Ufl
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Umgang mit Formeln, die sich auf leere Zellen beziehen


Schritt-für-Schritt-Anleitung

  1. WENN-Formel verwenden: Um sicherzustellen, dass Deine Formel nicht auf leere Zellen zugreift, kannst Du eine WENN-Formel nutzen. Beispiel:

    =WENN(UND(A1<>"", B1<>""), DEINEFORMEL, "Bitte Eingaben prüfen")

    Diese Formel prüft, ob die Zellen A1 und B1 leer sind, bevor die eigentliche Berechnung durchgeführt wird.

  2. VBA-Lösung implementieren: Wenn Du eine VBA-Lösung verwenden möchtest, kannst Du den folgenden Code nutzen, um Formeln auf leere Zellen zu überprüfen:

    Sub formelnPruefen()
       Dim zeLLe As Range
       Dim einGabeZelle As Range
       Dim formelBezuege As Range
       Dim firstMiss As Boolean
       Dim meLdung As String
    
       With ActiveSheet
           If Not .Cells.SpecialCells(xlCellTypeFormulas) Is Nothing Then
               For Each zeLLe In .Cells.SpecialCells(xlCellTypeFormulas)
                   firstMiss = True
                   On Error Resume Next
                   Set formelBezuege = zeLLe.Precedents
                   On Error GoTo 0
                   If Not formelBezuege Is Nothing Then
                       For Each einGabeZelle In formelBezuege
                           If IsEmpty(einGabeZelle) Then
                               If firstMiss Then
                                   meLdung = meLdung & "Bei der Formel """ & zeLLe.Formula & """ in Zelle " & zeLLe.Address(False, False) & " sind folgende Eingabewerte leer: " & einGabeZelle.Address(False, False)
                                   firstMiss = False
                               Else
                                   meLdung = meLdung & ", " & einGabeZelle.Address(False, False)
                               End If
                           End If
                       Next
                   End If
                   Set formelBezuege = Nothing
               Next
           End If
       End With
       If meLdung <> "" Then
           MsgBox (meLdung)
       Else
           MsgBox ("Alles ok")
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: "Die Formel in dieser Zelle bezieht sich auf einen Bereich, der an weitere Zahlen angrenzt."

    • Lösung: Überprüfe die Zellen, auf die Deine Formel zugreift, und stelle sicher, dass keine Zellen leer sind. Nutze die oben beschriebene WENN-Formel oder VBA, um leere Zellen zu identifizieren.
  • Fehler: Mathematisch richtig, aber inhaltlich falsch.

    • Lösung: Implementiere Logik, die sicherstellt, dass nur dann gerechnet wird, wenn alle benötigten Eingabewerte vorhanden sind.

Alternative Methoden

  • Datenüberprüfung nutzen: Du kannst die Datenüberprüfung von Excel verwenden, um sicherzustellen, dass nur gültige Werte in die Zellen eingegeben werden. So kannst Du leere Eingaben verhindern.

  • Bedingte Formatierung: Setze eine bedingte Formatierung auf die Zellen, um farblich hervorzuheben, wenn eine Zelle leer ist. Dies unterstützt Dich dabei, fehlende Eingaben schneller zu erkennen.


Praktische Beispiele

  • Anwendungsbeispiel für die WENN-Formel: Angenommen, Du berechnest den Umsatz aus Preis und Menge. Du möchtest sicherstellen, dass beide Werte vorhanden sind:

    =WENN(UND(A1<>"", B1<>""), A1*B1, "Bitte Eingaben prüfen")
  • VBA zur Überprüfung auf leere Zellen: Verwende den oben angegebenen VBA-Code, um alle Formeln auf einem Blatt zu überprüfen und eine Meldung auszugeben, falls Eingabewerte fehlen.


Tipps für Profis

  • Formel-Fehler durch bedingte Formatierung sichtbar machen: Setze benutzerdefinierte Fehlermeldungen in der Datenüberprüfung, um die Benutzer auf fehlende Eingaben aufmerksam zu machen.

  • Regelmäßige Überprüfung der Eingabewerte: Integriere eine regelmäßige Überprüfung Deiner Eingabewerte in Deinen Arbeitsablauf, um sicherzustellen, dass keine leeren Zellen übersehen werden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine Formeln nicht auf leere Zellen zugreifen? Um sicherzustellen, dass Deine Formeln nicht auf leere Zellen zugreifen, kannst Du WENN-Formeln oder VBA verwenden, um leere Eingabewerte zu identifizieren und entsprechende Warnungen auszugeben.

2. Was kann ich tun, wenn meine Formel weiterhin falsche Ergebnisse liefert? Überprüfe die Zellen, auf die sich Deine Formel bezieht. Stelle sicher, dass alle Eingabewerte korrekt und vollständig sind. Nutze die oben genannten Methoden zur Fehlerüberprüfung.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige