Thema Datum  Von Nutzer Rating
Antwort
Rot Benutzerdefinierte Funktion "ANAZHLBUCHSTABEN"
12.07.2021 15:59:21 Alexander
NotSolved
12.07.2021 16:09:57 Gast63975
NotSolved
24.07.2021 16:42:59 Der Steuerfuzzi
NotSolved
25.07.2021 13:58:39 Gast84022
NotSolved
25.07.2021 17:52:10 Der Steuerfuzzi
NotSolved
25.07.2021 20:54:53 Gast29867
NotSolved

Ansicht des Beitrags:
Von:
Alexander
Datum:
12.07.2021 15:59:21
Views:
72
Rating: Antwort:
  Ja
Thema:
Benutzerdefinierte Funktion "ANAZHLBUCHSTABEN"

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Benutzerdefinierte Funktion "ANAZHLBUCHSTABEN"
12.07.2021 15:59:21 Alexander
NotSolved
12.07.2021 16:09:57 Gast63975
NotSolved
24.07.2021 16:42:59 Der Steuerfuzzi
NotSolved
25.07.2021 13:58:39 Gast84022
NotSolved
25.07.2021 17:52:10 Der Steuerfuzzi
NotSolved
25.07.2021 20:54:53 Gast29867
NotSolved