Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit Funktion bei Formelzellen

Problem mit Funktion bei Formelzellen
01.01.2023 22:16:13
Burghard
Hallo,
allen ein gutes neues Jahr! Hier mein Problem: Ich benutze eine Funktion, bekomme aber in der Zelle F9 als Ergebnis #Wert, vermutlich weil in den Zellen F10 bis F350 jeweils eine Formel steht. Die Versuche mit "IstFehler" und "WennFehler" habe keine Änderung gebracht. Gibt es eine Möglichkeit, das Problem zu lösen oder kann der Aufruf einer Funktion, die sich über Formelzellen erstreckt, prinzipiell keine Summe bilden? Hier meine Infos:
Zelle F9 beruht auf einer Funktion, Aufruf mit:
=ohne_strich($F$10:$F$350)
Die Funktion lautet:

Public Function ohne_strich(Bereich As Range)
Dim rngC As Range, dblZ As Double
Application.Volatile
For Each rngC In Bereich
If rngC.Font.Strikethrough = False And rngC > 0 Then
dblZ = dblZ + rngC
End If
Next
ohne_strich = dblZ
ActiveSheet.Calculate
End Function
Die Zellen F10 bis F350 beinhalten eine längere Formel mit Verweis auf eine andere Arbeitsmappe.
Hilfe wäre nett.
Viele Grüße
Burghard

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Funktion bei Formelzellen
01.01.2023 22:38:23
onur
WERT! bedeutet nur, dass in der Funktion ein Fehler ist. Bei einer Sub würde er den Fehler zeigen, bei Funktionen aber nicht.
In so einem Fall am besten mittels jede Menge Haltepunkten untersuchen, wo der Code aussteigt.
In deinem Falle liegt es an

dblZ = dblZ + rngC
Das geht in die Hose, wenn die Zelle Text beinhaltet und du versuchst, Text mit Zahl zu addieren.
"Größer als 0" reicht NICHT aus, um zu testen, ob eine Zahl drin ist, denn jeder Text ist für Excel größer als 0.
Also so:

If rngC.Font.Strikethrough = False And IsNumeric(rngC) And rngC > 0 Then
Wenn du "rngC > 0" nur dafür benutzt hast, kann das auch weg.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige