Ich hab eine Textbox in einem Formular und möchte gerne darauf reagieren können, wenn die Tab-Taste gedrückt wurde. Wie mach ich das? Mit KeyAscii=9 haut das nicht hin.
Gruß
René
Ich hab eine Textbox in einem Formular und möchte gerne darauf reagieren können, wenn die Tab-Taste gedrückt wurde. Wie mach ich das? Mit KeyAscii=9 haut das nicht hin.
Gruß
René
wenn Du Tab "abfangen" möchtest, dann nutze nicht das KeyPress-Ereignis der Textbox sondern entweder das KeyDown- oder KeyUp-Ereignis. KeyCode für Tab ist 9!
Viel Spaß,
Andreas
http://www.bei-andi.de/excel
Super Tipp! Danke. Funktioniert super.
Gruß
René
Um das Tab-Tasten-Ereignis in einer Textbox abzufangen, musst Du das KeyDown- oder KeyUp-Ereignis verwenden, da das KeyPress-Ereignis hier nicht funktioniert. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne dein Excel-Dokument und gehe zu den Entwicklertools.
Füge ein UserForm hinzu und platziere eine Textbox auf dem Formular.
Klicke mit der rechten Maustaste auf die Textbox und wähle "Code anzeigen".
Füge den folgenden VBA-Code ein:
Private Sub TextBox1_KeyDown(KeyCode As MSForms.ReturnInteger, Shift As Integer)
If KeyCode = 9 Then ' 9 ist der Tab Keycode
' Hier kannst Du den Code hinzufügen, der ausgeführt werden soll
MsgBox "Tab-Taste wurde gedrückt!"
KeyCode = 0 ' Verhindert, dass der Fokus verschoben wird
End If
End Sub
Schließe den VBA-Editor und teste dein Formular.
Mit diesem Code kannst Du das Tab-Tasten-Ereignis erfolgreich abfangen und darauf reagieren.
Fehler 1: Tab-Taste funktioniert nicht wie erwartet
Fehler 2: Fokus verschiebt sich trotzdem
KeyCode = 0
innerhalb des Ereignisses, um zu verhindern, dass der Fokus auf das nächste Steuerelement verschoben wird.Wenn Du nicht nur auf die Tab-Taste reagieren möchtest, kannst Du auch andere Tasten abfangen. Hier sind Alternativen:
KeyUp
-Ereignis anstelle von KeyDown
, wenn Du den Fokus nach dem Loslassen der Taste ändern möchtest.KeyPress
-Ereignis für Buchstaben oder Zahlen, aber beachte, dass Tab dort nicht funktioniert.Hier ist ein Beispiel, wie Du mit der Tab-Taste und anderen Tasten arbeiten kannst:
Private Sub TextBox1_KeyUp(KeyCode As MSForms.ReturnInteger, Shift As Integer)
If KeyCode = 9 Then ' Tab Keycode
MsgBox "Du hast die Tab-Taste losgelassen!"
ElseIf KeyCode = 13 Then ' Enter Keycode
MsgBox "Du hast die Eingabetaste gedrückt!"
End If
End Sub
In diesem Beispiel kannst Du sowohl die Tab- als auch die Enter-Taste abfangen und entsprechende Aktionen ausführen.
1. Wie finde ich den Keycode für andere Tasten? Du kannst eine einfache MessageBox verwenden, um den KeyCode herauszufinden, indem Du alle Tasten abfängst und den KeyCode anzeigst.
2. Kann ich die Tab-Taste in einem normalen Arbeitsblatt abfangen? Das Abfangen der Tab-Taste funktioniert nur in Formularen oder Steuerelementen, da Excel-Standardarbeitsblätter die Tab-Taste für die Navigation verwenden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen