VBA UserForm KeyDown Sonderzeichen werden nicht erkannt?
Hallo, ich habe eine Frage zu meinem VBA Code. Und zwar sollen verschiedene Tastatureingaben verschiedene Funktionen triggern. Bei Zahlen, Buchstaben, Plus, Minus, "&"-Zeichen, "!"-Zeichen und einige andere Tasten gehen. "*"-Zeichen, Prozent, "(" und ")" bspw. gehen jedoch NICHT (als KeyCode wird 0 zurückgegeben). Hat jemand eine Ahnung woran das liegt?
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
handleKeyDown KeyCode, Shift
End Sub
Private Sub handleKeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim keyChar As String * 1
keyChar = Chr(KeyCode)
MsgBox (KeyCode)
Select Case keyChar
Case "0"
numb0_Click
Case "1"
numb1_Click
'.....
Case Else
End Select
Select Case KeyCode
Case "187"
plus_Click
'....
Case Else
End Select
End Sub
Danke für alle Antworten,
Nicolas
2 Antworten
Ich bin irritiert, "allles" was du drückst führt zu KeyCode "0" ?
Normalerweise hat jedes Object eine eigene KeyDown Routine.
e.g: eine textBox.
txt.MyTextBox_KeyDown(....)
oder willst du eine 'zentrale' KeyDown Routine für mehrere Objekte hinterlegen?
Teste mal im analogen KeyUp Event, welche Taste dort angeboten wird.
Bei mir hat es mit nem kleinen Testprogramm funktioniert. Habe die Taste "0" gedrückt. Sobald "Shift" in Kombination vorkommt gibt es etwas mehr zu tun.

Hi, sorry, hab mich glaube ich unklar ausgedrückt: Die meisten Zeichen geben den Richtigen KeyCode wert zurück (Zahlen, Buchstaben, einige Sonderzeichen), aber viele (Klammern, Prozentzeichen, etc.) geben 0 zurück.
Du musst dich zunächst um das Sonderzeichen kümmern. Shift = 1.
Dann um die weiteren gedrückten Tasten.
