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-Key: 261541

Url: https://administrator.de/contentid/261541

Printed on: April 19, 2024 at 18:04 o'clock

Member: colinardo
colinardo Jan 29, 2015 updated at 10:57:23 (UTC)
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
Member: windelterrorist
windelterrorist Jan 29, 2015 at 10:47:00 (UTC)
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.
Member: colinardo
Solution colinardo Jan 29, 2015, updated at Dec 11, 2015 at 07:31:06 (UTC)
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
Member: windelterrorist
windelterrorist Jan 29, 2015 at 11:01:52 (UTC)
Goto Top
Klasse es funktioniert danke viel mals für deine Mühe, Uwe!

Grüsse Michael
Member: miniversum
miniversum Jan 29, 2015 updated at 11:46:06 (UTC)
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ß
...