Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
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

Probleme mit Funktion

Probleme mit Funktion
29.03.2022 17:26:22
Burghard
Hallo,
ich möchte gerne in der Zelle E12 die Summe aller nicht durchgestrichenen Zahlenwerte der Spalte E2:E11 addieren.
Ich habe eine Beispieldatei hochgeladen:
https://www.herber.de/bbs/user/152137.xlsm
Die Funktion rechnet nur richtig, wenn in der Spalte E alle Zellen einen Zahlenwert beinhalten, bei Formeln oder leerer Zelle wird ansonsten in E12 nur #WERT ausgegeben. Alle meine Versuche, das Problem zu lösen, sind leider gescheitert.
Hier die Funktion:

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
'=ohne_strich($E$2:$E$11)
ActiveSheet.Calculate
End Function
Aufruf in Zelle E12 mit =ohne_strich($E$2:$E$11)
Hilfe wäre nett.
Viele Grüße
Burghard

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

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Funktion
29.03.2022 17:41:23
UweD
Hallo
prüfe noch zusätzlich darauf, ob es eine Zahl ist...

If rngC.Font.Strikethrough = False And rngC > 0 And IsNumeric(rngC) Then
LG UweD
AW: Probleme mit Funktion
29.03.2022 18:22:02
Burghard
Danke für Uwe! Funktioniert!
Viele Grüße
Burghard
AW: Probleme mit Funktion
29.03.2022 17:52:32
ralf_b

Public Function ohne_strich(Bereich As Range) As Double
Dim rngC   As Range, dblZ As Double
Application.Volatile
For Each rngC In Bereich
If rngC.Font.Strikethrough = False And IsNumeric(rngC) Then
dblZ = dblZ + CDbl(rngC.Value)
End If
Next
ohne_strich = dblZ
End Function

AW: Probleme mit Funktion
29.03.2022 18:23:11
Burghard
Danke Ralf! Funktioniert!
Viele Grüße
Burghard
Anzeige
AW: Probleme mit Funktion
29.03.2022 17:58:22
Nepumuk
Hallo Burghard,
teste mal:

Option Explicit
Public Function ohne_strich(Bereich As Range) As Double
Application.Volatile
Dim rngC As Range
For Each rngC In Bereich
If Not rngC.Font.Strikethrough Then
If IsNumeric(rngC.Text) Then
ohne_strich = ohne_strich + rngC.Value
End If
End If
Next
End Function
Gruß
Nepumuk
AW: Probleme mit Funktion
29.03.2022 18:24:14
Burghard
Danke Nepomuk! Funktioniert!
Viele Grüße
Burghard
User Defined Function?
30.03.2022 19:45:38
Yal
Hallo zusammen,
ich weiss, die Lösung ist schon gefunden, aber eine andere Ansatz: UDF. Ist dann jederzeit wiederverwendbar.
in einem Modul:

Public Function IstGestrichen(ByVal Target As Range) As Boolean
IstGestrichen = CBool(Target.Font.Strikethrough)
End Function
Im Blatt (z.B. in B1):
=--IstGestrichen(A1)
ergibt 1 bei gestrichen und 0 sonst. Darauf dann einen Summenprodukt aufbauen:
= Summenprodukt(A1:A10;B1:B10)
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige