VBA: Anzahl eines Zeichens in String

Hi,
ich brauch dringend Hilfe bei VBA. Ich will einen String nach einem bestimmten Zeichen durchsuchen und die Anzahl der gefundenen Zeichen ermitteln.

Beispiel (Pseudocode):

text = "1.2. Informationen zum System"
zCount = anzahlZeichenInString(".",text)

Hier will ich nach Punkten (".") im angegebenen Text suchen. Es sind zwei Punkte vorhanden, also soll die Variable zCount die Zahl 2 enthalten.

Kann mir jemand hierzu einen Tipp geben?
Vielen Dank
Daniel

Pseudocode von Pseudoprogrammierer:

Function anzahlZeichenInString(Zeichen As String, Kette As String) As Integer

Dim i, count As Integer

For i = 1 To Len(Kette)
   If Mid(Kette, i, 1) = Zeichen Then
       count = count + 1
   End If
Next

anzahlZeichenInString = count
End Function

könnte mir noch ne andere Lösung mit einer falschen Verwendung von Split und ubound+1 vorstellen (Also die Zeichenkette mit Split und dem gesuchten Zeichen als Delimiter in einen Array verwandeln und dann zu der Anzahl der Elemente im Array 1 dazuzählen), aber ich glaube das die obige sinnvoller ist (falls sie funktioniert *gg*)

mfg
der Pseudo
Greenberet

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hach, wenn nur die Hilfe auch so einfach wäre wie Deine Funktion…
Danke Greenberet. Es funktioniert gar prächtig :smile:

Grüße
Daniel

Alternativen
Hallo,

hätte noch folgende Alternativen

Function AnzahlZeichenInString(Zeichen As String, Kette As String) As Long
dim lngZähler as long
dim lngStart as long

if Kette="" or zeichen = „“ then exit function

lngStart=1
Do
lngzähler = lngZähler + 1
lngStart = instr(lngStart,Kette,Zeichen)>0
loop until lngStart = 0

AnzahlZeichenInString = lngZähler -1
End Function

Ich finde die Idee mit dem Split gut:

Function AnzahlZeichenInString(Zeichen As String, Kette As String) As Long

If Kette="" or zeichen = „“ then exit Function

AnzahlZeichenInString = Ubound(Split(Kette,zeichen))

End Function

MfG CB