Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
192to196
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textfeld-Eingabe nur numerisch

Textfeld-Eingabe nur numerisch
15.12.2002 01:28:40
herbert r.
hallo,
wie kann ich erreichen, dass in einem Textfeld einer Userform nur numerische Eingaben möglich sind?

Vielen Dank im voraus
herbert r.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Textfeld-Eingabe nur numerisch
15.12.2002 02:00:06
PeterW
Hallo Herbert,

eine oft gestellte Frage, gib in der Recherche - Suche in den Themenlisten - als Suchwort mal Textfeld ein. Das sollte Deine Frage beantworten.

Gruß
Peter

keine Lösung!
15.12.2002 02:34:26
herbert r.
hallo Peter,
dass hab ich schon mal versucht, aber keine passende Lösung gefunden!
Ich möchte, dass die Eingabe nicht-numerischer Zeichen dazu führt, dass 'garnichts' passiert. Also die Eingabe neu erfolgen muss.
vielen Dank,
herbert r.
Re: keine Lösung!
15.12.2002 04:16:52
Nepumuk
Hallo Herbert,
gar nicht so einfach was du verlangst, denn ein Komma und ein Bindestrich dazu noch ein Pluszeichen ist auch ein nummerischer Wert, ergeben aber immer noch keine sinnvolle Zahl. Also, was soll genau verhindert werden?
Gruß
Nepumuk

Anzeige
Re: keine Lösung!
15.12.2002 08:45:41
Hajo_zi
Hallo Herbert

das Du nichts im Archiv, Recherche gefunden hast kann ich nicht glauben. Die Frage habe ich schon paar mal beantwortet. Ich gehe mal davon aus das Du eine UserForm hast.


Option Explicit

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Ansat VB 6 Buch von Peter Monadjemi
' nur Zahlen
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc("."), Asc(",")
If InStr(TextBox1, ",") <> 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(",")
End If
Case Asc(vbBack)
Case Asc("-")
If Len(TextBox1) = 0 Then
If InStr(TextBox1, "-") <> 0 Then
Else
KeyAscii = Asc("-")
End If
Else
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' von Peter Haserodt
' nur Bchstaben
Select Case KeyAscii
Case 97 To 122, 65 To 90, 228, 246, 252, 196, 214, 220, 223
Case Else
KeyAscii = 0
MsgBox "Nur Buchstaben", vbExclamation
End Select
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: keine Lösung!
15.12.2002 08:45:43
Hajo_zi
Hallo Herbert

das Du nichts im Archiv, Recherche gefunden hast kann ich nicht glauben. Die Frage habe ich schon paar mal beantwortet. Ich gehe mal davon aus das Du eine UserForm hast.


Option Explicit

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Ansat VB 6 Buch von Peter Monadjemi
' nur Zahlen
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc("."), Asc(",")
If InStr(TextBox1, ",") <> 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(",")
End If
Case Asc(vbBack)
Case Asc("-")
If Len(TextBox1) = 0 Then
If InStr(TextBox1, "-") <> 0 Then
Else
KeyAscii = Asc("-")
End If
Else
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' von Peter Haserodt
' nur Bchstaben
Select Case KeyAscii
Case 97 To 122, 65 To 90, 228, 246, 252, 196, 214, 220, 223
Case Else
KeyAscii = 0
MsgBox "Nur Buchstaben", vbExclamation
End Select
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: keine Lösung!
15.12.2002 22:40:02
herbert r.
Sorry, habe mich wohl nicht genau genug augedrückt.
In das Testfeld sollen nur Zahlen aus den Ziffern von 0-9 eingegeben werden, keine Kommas od. sonstige Zeichen.

Ich habe schon mal mit "isnumeric(wert)" probiert, kriege es aber nicht so hin, dass beim Eintippen eines Zeichens das nicht im Bereich 0-9 liegt, gar keine Eingabe akzeptiert wird. Wenn also der User z.B. ein "A" eintippt, soll nichts passieren, das "A" auch nicht in der Textbox stehen...
Gruß herbert r.

Re: keine Lösung!
15.12.2002 22:44:08
herbert r.
Hallo Hajo,
vielen Dank für Deine Antwort.
Ja, Textbox ist in einer Userform. Deinen Vorschlag muss ich erst noch probieren, ob dass so klappt.
Ich hatte wohl bei meiner Suche nach "istnumeric(wert)" keinen rechten Erfolg.
Gruß, herbert r.
Anzeige
Re: keine Lösung!
16.12.2002 07:28:16
Nepumuk
Morgen Herbert,
das könntest du so verhindern:

Gruß
Nepumuk
Lösung!
16.12.2002 10:54:33
herbert r.
hallo Hajo,
vielen Dank für die Lösungsvorschläge. Der 2. von Peter Haserodt ist genau das, was ich brauche. Musste ihn nur noch auf Ziffern anpassen:

Private Sub txtIDnr_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0

End Select
End Sub

Gruß, herbert r.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige