Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige