Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

in Textfeld nur Buchstaben zulassen

1,000 views
Skip to first unread message

Helge Borchert

unread,
Nov 4, 2004, 6:54:39 AM11/4/04
to
Hi,

Wie kann eine Fehlerüberprüfung für ein Textfeld aussehen für das nur
Buchstabe von a bis z, also keine Ziffern oder Sonderzeichen etc. zugelassen
werden soll?

Vielen Dank für Eure Hilfe

Helge Borchert


Alexander Wolff

unread,
Nov 4, 2004, 7:26:47 AM11/4/04
to
Sub test()
MsgBox NurAbisZ("adjhfaljd")
End Sub

Function NurAbisZ(Text As String) As Boolean
Dim m, n As Long
n = Len(Text): m = 0
For i = 1 To n
t$ = Mid(Text, i, 1): If t$ >= "a" And t$ <= "z" Then m = m + 1
Next
If m = n Then NurAbisZ = True Else NurAbisZ = False
End Function

Gruß Alexander


"Helge Borchert" <NOSPAM_b...@web.de> schrieb im Newsbeitrag
news:2uujjsF...@uni-berlin.de...

wobrose58

unread,
Nov 4, 2004, 7:29:05 AM11/4/04
to
Hallo Helge,
dies funktioniert mit einer "Gültigkeit": Für die Zelle, in die lediglich
Zahlen eingegeben werden dürfen ist eine solche Regel aufzustellen, indem man
unter <Daten> folgende <Gültigkeit> zulässt: <Ganze Zahl> falls es sich um
ganze Zahlen handeln soll, oder <Dezimal>, falls es sich auch um Kommabeträge
handeln darf. Darunter kann man sogar noch den kleinsten und / oder den
größten Wert angeben, muss man jedoch nicht.
Ich hoffe, ich konnte Dir helfen.
Gruß
Wolfgang Brosé

Christian Wisspeintner

unread,
Nov 4, 2004, 7:36:23 AM11/4/04
to
Hallo Helge,

"Helge Borchert" <NOSPAM_b...@web.de> schrieb im Newsbeitrag
news:2uujjsF...@uni-berlin.de...

> Hi,
>
> Wie kann eine Fehlerüberprüfung für ein Textfeld aussehen für das nur
> Buchstabe von a bis z, also keine Ziffern oder Sonderzeichen etc.
zugelassen
> werden soll?
>

Ich mach das wie folgt: Einfach im Change-Event der Textbox folgendes
eintragen

Private Sub TextBox1_Change()
Dim textstr1 As String, textstr2 As String
textstr1 = Me.TextBox1.Value
textstr2 = ""
For I = 1 To Len(textstr1)
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
Mid(textstr1, I, 1)) Then
textstr2 = textstr2 & Mid(textstr1, I, 1)
End If
Next I
Me.TextBox1.Value = textstr2
End Sub

Das ist vielleicht nicht die schnellste Variante, ist jedoch sehr flexibel
was die Auswahl der erlaubten Zeichen angeht (der erste String in der
InStr-Anweisung enthält alle Zeichen, die erlaubt sind, alle anderen werden
herausgefiltert ... Du kannst hier auch noch Ziffern, Umläute oder bestimmte
Sonderzeichen eintragen). Wenn Du das Ganze öfter brauchst solltest Du den
Code natürlich in eine extra Funktion packen (mit 'textstr1' als Argument
und 'textstr2' als Rückgabewert).

Gruss

Christian


Melanie Breden

unread,
Nov 4, 2004, 7:42:15 AM11/4/04
to
Hallo Helge,

Helge Borchert schrieb:

> Wie kann eine Fehlerüberprüfung für ein Textfeld aussehen für das nur
> Buchstabe von a bis z, also keine Ziffern oder Sonderzeichen etc. zugelassen
> werden soll?

hier noch ein Vorschlag:

Private Sub TextBox1_Change()
Dim strText As String

With TextBox1
If .Text = "" Then Exit Sub
strText = Asc(UCase(VBA.Right(.Text, 1)))
If strText < 58 Or strText > 90 Then
.Text = VBA.Left(.Text, Len(.Text) - 1)
End If
End With
End Sub

--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#

Helge Borchert

unread,
Nov 4, 2004, 7:50:47 AM11/4/04
to
hat super gefunzt. Habe jetzt EIN Problem weniger :-))

Helge


frankarendt-theilen

unread,
Nov 4, 2004, 9:15:09 AM11/4/04
to
Hallo Helge,
wenn es sich um eine Textbox auf einer Userform handelt, dann hab ich
auch noch einen Vorschlag:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not Chr(KeyAscii) Like "[a-z,A-Z]" Then KeyAscii = 0
End Sub

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung

0 new messages