Ein Problem bei einer Excel- Aufgabe ist tatsächlich noch aufgetreten. Wäre super, wenn ich hier kurz nochmal Hilfe bekommen könnte.
Erstelle eine benutzerdefinierte Funktion ZIFFERNSUMME innerhalb von Microsoft Excel. Diese bekommt als Argument(e) beliebige Werte, Zellen und Zellbereichen übergeben. Alle Ziffern, die sich direkt in einer Zahl oder auch in einem String befinden, sollen dabei aufsummiert werden, gleiches gilt für Zahlen und Strings in Zellbezügen. Wird gar keine Ziffer gefunden, liefert die Funktion den Wert 0 zurück.
Beispiel: In den Zellen A1 bis C2 stehen die rechts zu sehenden Werte:
Der Aufruf =ZIFFERNSUMME(-123) liefert dann 6 als Ergebnis.
Der Aufruf =ZIFFERNSUMME(A1) liefert dann 6 als Ergebnis. (FEHLER BEI MIR = 0)
Der Aufruf =ZIFFERNSUMME(A1:C2) liefert dann 13 als Ergebnis. (FEHLER BEI MIR = 0)
Der Aufruf =ZIFFERNSUMME() liefert dann 0 als Ergebnis.
Der Aufruf =ZIFFERNSUMME(„Ohne Ziffern“) liefert dann 0 als Ergebnis.
Die erstellte Funktion soll im Funktionsassistenten in der Rubrik Mathematik und Trigonometrie erscheinen und einen erklärenden Text enthalten.
Option Explicit
Public Function ZIFFERNSUMME(ParamArray Args() As Variant) As Integer
Dim i As Integer
Dim z As Integer
Dim s As Integer
Dim Zelle As Range
Dim Ergebnis As Integer
Ergebnis = 0
For i = LBound(Args) To UBound(Args) 'Array durchlaufen
If Not TypeName(Args(i)) = "Range" Then 'Typ überprüfen (mehrere Zellen oder einzelne)
'jede zelle im Array durchlafen
If IsNumeric(Args(i)) Then
For z = 1 To Len(Args(i))
'jede Ziffer der Zelle durchlaufen
If Mid(CInt(Args(i)), z, 1) Like "[0-9]" Then 'überprüfen ob es sich an der Stelle um eine Ziffer handelt
s = Mid(CInt(Args(i)), z, 1)
Ergebnis = Ergebnis + s
End If
Next
End If
Else
For Each Zelle In Args(i)
If IsNumeric(Args(i)) Then
For z = 1 To Len(Zelle.Value)
If Mid(CInt(Zelle.Value), z, 1) Like "[0-9]" Then
s = Mid(CInt(Zelle.Value), z, 1)
Ergebnis = Ergebnis + s
End If
Next
End If
Next
End If
Next
ZIFFERNSUMME = Ergebnis
End Function
Sub a()
Application.MacroOptions _
Macro:="ZIFFERNSUMME", _
Description:="Bereinigt Zellen von Buchstaben und Satzzeichen und summiert Ziffern zusammen", _
Category:=3
End Sub
|