ich möchte gerne in einer bereits geöffneten Userform Textboxen (oder auch Checkboxen) mit Hilfe eines Shortcuts auswählen. Ich möchte zum Beispiel, wenn die Userform geöffnet ist, "Alt + 1" drücken um die erste Textbox auszuwählen. Wenn ich meine Werte dort eingegeben habe, möchte ich "Alt + 2" drücken um zu Textbox 2 auszuwählen.
Mir sind dabei 2 Dinge wichtig:
1. Die Shortcuts sollen Kombinationen sein; also bestenfalls mit "Alt", "Strg", oder "Shift" und einer Zahl funktionieren, damit es intuitiv und schnell bleibt
2. Die Shortcuts sollen funktionieren, egal wo ich mich in der Userform befinde. Möchte ich zum Beispiel zu Textbox 3 mit "Alt + 3" soll das möglich sein, egal ob ich gerade in Textbox 1 bin, Checkbox 5 geklickt, oder einen Commandbutton ausgewählt habe.
Ich habe es schon mit Application.Onkey versucht, aber feststellen müssen, dass es bei Userformen nicht funktioniert (Wenn ich das richtig versanden habe).
Ich habe noch eine andere Methode gefunden mit Userform_Keydown(), weiß aber nicht, wie ich sie zum Laufen kriege, oder ob es überhaupt funktioniert.
Wenn mir jemand erklären könnte, wie ich zum Beispiel folgenden Code ausführe, wenn Textbox 1 ausgewählt ist. würde mir das sehr helfen. (und vielleicht auch, wie es funktioniert, wenn eine Checkbox ausgewählt ist, aber mit der Textbox wäre mir schon unglaublich geholfen)
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyControl Then
MsgBox "Strg wurde gedrückt"
End If
End Sub
Darauf aufbauend die Frage: Könnte ich während ich in einer Textbox bin zum Beispiel durch drücken von "Strg" ein Makro aufrufen, in dem die einzelnen "Tastenkombinationen" aufgeführt sind? Ich gehe bisher davon aus, dass ich für jede Textbox etc. jede Tastenkombination zuweisen muss Code haben muss und so könnte ich das "abkürzen" und übersichtlicher halten. Application.Onkey habe ich in dem Beispiel genutzt um es anschaulicher zu machen.
Private Sub ZugewieseneTasten()
' Application.Onkey habe ich in dem Beispiel genutzt um es anschaulicher zu machen.
Application.OnKey "{1}", Textbox1.Select
Application.OnKey "{2}", Textbox2.Select
Application.OnKey "{3}", Textbox3.Select
End Sub
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyControl Then
ZugewieseneTasten
End If
End Sub
Ich habe bei meiner Suche auch diesen Thread gefunden:
https://www.herber.de/forum/archiv/156to160/159120_Onkey_in_Userform.html
Ich kann hier aber leider die Codes nichts sehen. In englischsprachigen Foren habe ich auch nichts passendes finden können.
Kann mir jemand bei dem Problem Helfen?
Gruß
Thomas