|  
                                             Guten Tag, 
folgende Aufgabenstellung: 
Erstelle eine benutzerdefinierte Funktion ANZAHLBUCHSTABEN innerhalb von Microsoft Excel, die in beliebigen als Argumenten anzugebenden Zellen und Zellbereichen alle Zeichen in den Werten dieser Zellen durchläuft und die Gesamtzahl aller gefundenen Buchstaben (egal, ob groß oder klein) als Funktionsergebnis zurückgibt. Wurden keine Zellen mit Buchstaben darin gefunden, soll 0 zurückgegeben werden.  
Die erstellte Funktion soll im Funktionsassistenten in der Rubrik Informationen erscheinen und einen erklärenden Text enthalten. 
 
  
Mein Code: 
Option Explicit 
'Funktion, die die Anzahl gefundener Buchstaben in Zellen und Zellbereichen ausgibt 
Public Function ANZAHLBUCHSTABEN(ParamArray Args() As Variant) As Integer 
    Dim i As Integer 
    Dim s As Integer 
    Dim sum As Integer 
     
    sum = 0 
     
    Const ALLOWED_CHARS = "abcdefghijklmnopqrstuvwxyzß" 
     
    'Alle Parameter durchlaufen 
    For i = LBound(Args) To UBound(Args) 
         
        'Prüfen ob etwas eingegeben wurde 
        If InStr(LCase(CStr(Args(i))), ALLOWED_CHARS) > 0 Then 
             
            'Alle Stellen des Arguments durchlaufen und prüfen, ob Buchstaben vorkommen 
            For s = 1 To Len(Args(i)) 
                If Mid(LCase(CStr(Args(i))), s, 1) = ALLOWED_CHARS Then 
                    sum = sum + 1 
                Else 
                    sum = sum + 0 
                End If 
            Next 
         
        ElseIf TypeName(Args(i)) = "Range" Then 
             
            'Bei Zellbereichen jede Zelle daraus betrachten 
            Dim Zelle As Range 
             
            For Each Zelle In Args(i) 
                 
                'Zellenargument zu einem String mit nur Kleinbuchstaben machen und prüfen, ob ein Buchstabe drinne vorkommt 
                If InStr(LCase(CStr(Zelle.Value)), ALLOWED_CHARS) > 0 Then 
                     
                    'Alle Argumente einer Zelle durchlaufen und die Buchstaben zählen 
                    For s = 1 To Len(Zelle.Value) 
                        If Mid(LCase(CStr(Zelle.Value)), s, 1) = ALLOWED_CHARS Then 
                            sum = sum + 1 
                        Else 
                            sum = sum + 0 
                        End If 
                    Next 
                End If 
            Next 
        Else 
            sum = sum + 0 
        End If 
        ANZAHLBUCHSTABEN = sum 
    Next 
End Function 
     
Sub SetFunctionInfos() 
    Application.MacroOptions Macro:="ANZAHLBUCHSTABEN", Description:="Funktion zur Bestimmung der Anzahl von vorkommenden Buchstaben", Category:=9 
End Sub 
  
Wo liegt der Fehler und wie behebe ich selbigen? 
Vielen Dank im Voraus. 
Beste Grüße 
     |