Live-Forum - Die aktuellen Beiträge
Datum
Titel
25.10.2025 08:21:40
24.10.2025 18:10:41
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA string nur Buchstaben oder Bindestri

VBA string nur Buchstaben oder Bindestri
28.05.2020 13:07:23
Andreas
Hallo,
ich habe Coide in VBA - keine InputBox oder so.
An einer Stelle kann jemand eine Variable füllen.
Ich möchte sicherstellen, dass der String nur Buchstaben oder einen Bindestrich enthält, weil es sich um einen Vornamen handeln soll.
Ich suche eine möglichst simple, effektive Lösung.
Danke für Ideen.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: like ...
28.05.2020 14:16:44
Fennek
Hallo,
relativ einfach ist der Ansatz mit "like":

dim bo as boolean
Tx = "Anna-Marie"
for i = 1 to len(Tx)
if mid(Tx,i,1) like "^[-A-z] then bo = true
next i
if bo then msgbox "falsche Eingabe"
ungeprüft
mfg
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA-Strings: Nur Buchstaben oder Bindestriche zulassen


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass ein String in VBA nur Buchstaben oder Bindestriche enthält, kannst Du die folgende Vorgehensweise anwenden. Diese Methode nutzt die Like-Anweisung, um die Eingaben zu überprüfen.

  1. Deklariere die Variablen: Lege eine Boolean-Variable fest, um die Validierung zu steuern.
  2. Erstelle eine Schleife: Durchlaufe jeden Charakter des Strings.
  3. Verwende die Like-Anweisung: Überprüfe, ob der Charakter den gewünschten Kriterien entspricht.
  4. Gebe ein Feedback: Informiere den Benutzer über die Ergebnisse.

Hier ist ein einfaches Beispiel:

Dim bo As Boolean
Dim Tx As String
Tx = "Anna-Marie" ' Beispiel-String

For i = 1 To Len(Tx)
    If Mid(Tx, i, 1) Like "[-A-Za-z]" Then
        bo = True
    Else
        bo = False
        Exit For
    End If
Next i

If Not bo Then
    MsgBox "Falsche Eingabe: Der String darf nur Buchstaben oder Bindestriche enthalten."
End If

Häufige Fehler und Lösungen

  • Fehler: Der Code gibt immer eine falsche Eingabe zurück, selbst bei gültigen Strings.

    • Lösung: Überprüfe die Bedingungen in der If-Anweisung. Stelle sicher, dass Du die korrekten Zeichen in die Like-Anweisung einfügst, z.B. [-A-Za-z].
  • Fehler: Die Schleife läuft nicht durch alle Zeichen.

    • Lösung: Überprüfe, ob die Schleife korrekt von 1 bis Len(Tx) läuft. Ein falsches Ende könnte die Überprüfung vorzeitig beenden.

Alternative Methoden

Eine andere Möglichkeit, um sicherzustellen, dass ein excel vba string nur Buchstaben oder Bindestriche enthält, ist die Verwendung regulärer Ausdrücke (RegEx). Hier ist ein Beispiel:

Dim regEx As Object
Set regEx = CreateObject("VBScript.RegExp")

regEx.Pattern = "^[A-Za-z-]+$" ' Nur Buchstaben und Bindestriche
regEx.IgnoreCase = True

If Not regEx.Test(Tx) Then
    MsgBox "Falsche Eingabe: Der String darf nur Buchstaben oder Bindestriche enthalten."
End If

Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen können, die Funktionalität zu testen:

  • Gültige Eingaben:

    • Tx = "Max"
    • Tx = "Anna-Marie"
  • Ungültige Eingaben:

    • Tx = "Max123" (enthält Ziffern)
    • Tx = "Anna_Marie" (enthält einen Unterstrich)

Verwende diese Beispiele, um die Logik zu überprüfen und sicherzustellen, dass der vba string die gewünschten Anforderungen erfüllt.


Tipps für Profis

  • Erweiterungen: Du kannst die Like-Anweisung anpassen, um zusätzliche Sonderzeichen zu erlauben, wenn nötig.
  • Performance: Bei sehr langen Strings kann die RegEx-Methode effizienter sein als die Schleife.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Eingaben abzufangen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der String nur Buchstaben enthält?
Du kannst die Like-Anweisung oder reguläre Ausdrücke verwenden, um die Eingaben zu validieren.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der gezeigte VBA-Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.

3. Was passiert, wenn der String Leerzeichen enthält?
Der Code gibt eine falsche Eingabe zurück, da Leerzeichen nicht erlaubt sind. Du kannst das Muster in der Like-Anweisung anpassen, um Leerzeichen zuzulassen, wenn nötig.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige