windelterrorist
Goto Top

In einer Textzeile (String) die Anzahl eines vorgekommenen Buchstaben zählen

Hallo!

Ich bin noch neu im Bereich VBA und bin mir deshalb noch etwas unsicher in dieser Programmiersprache.

Würde gerne von euch wissen, wie ich beispielsweise die Anzahl "e" in einer Textzeile zählen kann.


Grüsse Michael

Content-ID: 261541

Url: https://administrator.de/forum/in-einer-textzeile-string-die-anzahl-eines-vorgekommenen-buchstaben-zaehlen-261541.html

Ausgedruckt am: 23.12.2024 um 20:12 Uhr

colinardo
colinardo 29.01.2015 aktualisiert um 11:57:23 Uhr
Goto Top
Hallo Michael,
z.B. so
Dim intCount, strText, strBuchstabe,i
intCount = 0
strBuchstabe = "e"    ' case sensitive  
strText = "Hallo windelterrorist"  
For i = 1 To Len(strText)
	If Mid(strText,i,1) = strBuchstabe Then
		intCount = intCount + 1
	End If
Next
MsgBox "Der Buchstabe " & strBuchstabe & " wurde " & intCount & " mal gezählt."  
Grüße Uwe
windelterrorist
windelterrorist 29.01.2015 um 11:47:00 Uhr
Goto Top
Danke viel mals für deine Antwort, Uwe.

Das hat soweit eigentlich prima funktioniert. Könnte man auch eine Zeile in eine InputBox eingeben und danach werden die Zeichen des eingegebenen Strings der InputBox gezählt? Wenn ja, wie würde es dann aussehen?

Wenn ich Option Explicit als erste Zeile verwende, dann kommt immer die Meldung: Fehler beim kompilieren, Variabel nicht definiert. Was mache ich falsch?
Habe auch nocheinen Sub übung1() mit End Sub hinzugefügt.
colinardo
Lösung colinardo 29.01.2015, aktualisiert am 11.12.2015 um 08:31:06 Uhr
Goto Top
Zitat von @windelterrorist:
Das hat soweit eigentlich prima funktioniert. Könnte man auch eine Zeile in eine InputBox eingeben und danach werden die
Zeichen des eingegebenen Strings der InputBox gezählt? Wenn ja, wie würde es dann aussehen?
Klar:
Option Explicit
Dim intCount, strText, strBuchstabe, i
strBuchstabe = "e"    ' case sensitive   
strText = InputBox("Bitte geben Sie Ihren Text ein","Eingabe")  
For i = 1 To Len(strText)
	If Mid(strText,i,1) = strBuchstabe Then
		intCount = intCount + 1
	End If
Next
MsgBox "Der Buchstabe " & strBuchstabe & " wurde " & intCount & " mal gezählt."  
Wenn ich Option Explicit als erste Zeile verwende, dann kommt immer die Meldung: Fehler beim kompilieren, Variabel nicht
definiert. Was mache ich falsch?
das i war nicht deklariert, hatte ich vergessen face-wink
Option Explicit bedeutet ja das man alle verwendeten Variablen vorher mit DIM deklarieren muss. Ist das nicht der Fall wird ein Fehler ausgeworfen.

Grüße Uwe
windelterrorist
windelterrorist 29.01.2015 um 12:01:52 Uhr
Goto Top
Klasse es funktioniert danke viel mals für deine Mühe, Uwe!

Grüsse Michael
miniversum
miniversum 29.01.2015 aktualisiert um 12:46:06 Uhr
Goto Top
Hallo,

nur als Ergänzung eine etwas kürzere Variante:
Option Explicit
Dim strText, strBuchstabe
strBuchstabe = "e"    ' case sensitive   
strText = InputBox("Bitte geben Sie Ihren Text ein","Eingabe")  
intCount = Len(strText) - Len(Replace(strText, strBuchstabe, ""))  
MsgBox "Der Buchstabe " & strBuchstabe & " wurde " & intCount & " mal gezählt."  

Gruß
...