ich habe ein Textfeld, in das die Benutzer Text eingeben sollen. Das Textfeld ist mehrzeilig _ und nimmt viel Text auf. Ich logge alle Keys des Benutzers mit und dazu die Zeit, die zwischen den Keys vergeht, indem ich die folgende Methode anwende:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode 16 Then
Stopp(ZeichenNr) = Timer
Zeichen(ZeichenNr) = KeyCode
If Shift = 0 Then
Shift_Status(ZeichenNr) = False
Else: Shift_Status(ZeichenNr) = True
End If
Zeit(ZeichenNr) = Stopp(ZeichenNr) - Start(ZeichenNr)
ZeichenNr = ZeichenNr + 1
Start(ZeichenNr) = Timer
End If
End Sub
Das funktioniert recht gut. Wenn ich aber die Keys hinterher in ein Datenblatt schreiben will, dann funktioniert der folgende Code leider nicht für alle Zeichen.
If Shift_Status(ZeichenNr) = False Then
ActiveCell.Offset(0, 1).Value = LCase(Chr(Zeichen(ZeichenNr)))
Else: ActiveCell.Offset(0, 1).Value = UCase(Chr(Zeichen(ZeichenNr)))
End If
Bei den Zahlen (KeyCode 48-57) werden unabhängig von Shift immer nur die Zahlen ins Excel-Blatt geschrieben (also nicht !"§$%...). Bei den Umlauten und Satzzeichen bekomme ich andere Zeichen als im Textfeld.
Weiß jemand Rat?
Vielen Dank im voraus.