Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Userform Folge-Textbox automatisch ansteuern

Forumthread: Userform Folge-Textbox automatisch ansteuern

Userform Folge-Textbox automatisch ansteuern
Dietmar
Hallo in die Runde,
ich habe in einer Userform mehrere Textboxen, denen ich das Format "nur eine Ziffer2 zugewiesen haben.
Das klappt auch ganz prima.
Nun möhte ich den Code aber noch etwas verbessern: Wie kann ich erreichen, dass der Cursor automatisch in die nächste Textbox springt, wenn eine Ziffer (vorgesehen ist auch nur eine Ziffer) eingetragen wurde?
Meine Idee habe ich dargestellt. So geht es aber leider nicht
Vielen Dank vorab!
Dietmar aus Aachen
Private Sub CommandButton1_Click()
'Partnernummer 1. Ziffer
If IsNumeric(TextBox2.Text) Then
Range("B2") = CDbl(TextBox2.Text)
Else
End If
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'1. Ziffer der Partnernummer
Select Case KeyAscii
Case Asc(0) To Asc(9), Asc(","), 8 '8 = Backspace - Löschen nach links
TextBox2.MaxLength = 1
If Len(TextBox2) = 1 Then   'DAS HIER GEHT NICHT
TextBox3.Select
End If
Case Else
KeyAscii = 0
End Select
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform Folge-Textbox automatisch ansteuern
07.10.2010 09:43:49
Luschi
Hallo Dietmar,
https://www.herber.de/bbs/user/71794.xls
hier mal eine 'Hilfskrücken-Lösung', die in Excel 2003 bis 2010 getestet ist und läuft.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'1. Ziffer der Partnernummer
Select Case KeyAscii
Case Asc(0) To Asc(9), Asc(",")
Application.SendKeys "~", False
Me.TextBox1.Value = Chr(KeyAscii)
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'1. Ziffer der Partnernummer
Select Case KeyAscii
Case Asc(0) To Asc(9), Asc(",")
Application.SendKeys "~", False
Me.TextBox2.Value = Chr(KeyAscii)
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'1. Ziffer der Partnernummer
Select Case KeyAscii
Case Asc(0) To Asc(9), Asc(",")
Application.SendKeys "~", False
Me.TextBox3.Value = Chr(KeyAscii)
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub UserForm_Initialize()
Me.TextBox1.MaxLength = 1
Me.TextBox2.MaxLength = 1
Me.TextBox3.MaxLength = 1
End Sub
Gruß von Luschi
aus klein-Paris
PS: Die Berücksichtigung der Backspace-Taste ist nicht notwendig, da keine Change aud Anwendung
Die TabIndex-Eigenschaften müssen korrrekt eingestellt sein:
1. Textbox - 0
2. Textbox - 1
usw.
Da beim 'KeyPress'-Ereignis der TB's die Länge des Eintrages immer noch 0 ist, kann die If-Bedingung nicht funktionieren.
Anzeige
;

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