Discussion:
Tasteneingabe in Excel-VBA abfangen
(zu alt für eine Antwort)
John II
2006-05-17 13:21:01 UTC
Permalink
Hallo Ihr da!

Bin gerade dabei eine Buchhaltungseingabe in einem Userform nachzubauen.
Dazu müsste ich die Tasten Enter bzw. Plus auf dem Nummernblock abfangen.
Denn wenn der Eingabebetrag im ersten Textfeld mit der Enter-Taste (vom
Nummernblock) bestätigt wird, soll ein „S“ in das nächste Textfeld
geschrieben werden. Bei der Bestätigung des Betrages durch die Plus-Taste
(auf dem Nummernblock) soll ein „H“ in das Textfeld geschrieben werden. Ich
hab schon im Kompendium nachgeschaut, aber leider nur ein Beispiel dazu
gefunden. Wer kann mir folgende Fragen beantworten?

1.) Wie finde ich die Tastenkennungen heraus?

2.) Unterscheiden sich die Tastenkennungen der Enter-Taste vom
Nummerblock von der von der Tastatur?

3.) Wie könnte so ein VBA-Script aussehen?

Vielen Dank schon im Voraus.

John

PS.: Bin Anfänger – Brauche auch etwas Erklärung zum Script.
Stephan Nawroth
2006-05-17 13:51:05 UTC
Permalink
Post by John II
Hallo Ihr da!
Bin gerade dabei eine Buchhaltungseingabe in einem Userform nachzubauen.
Dazu müsste ich die Tasten Enter bzw. Plus auf dem Nummernblock abfangen.
Denn wenn der Eingabebetrag im ersten Textfeld mit der Enter-Taste (vom
Nummernblock) bestätigt wird, soll ein „S“ in das nächste Textfeld
geschrieben werden. Bei der Bestätigung des Betrages durch die Plus-Taste
(auf dem Nummernblock) soll ein „H“ in das Textfeld geschrieben werden. Ich
hab schon im Kompendium nachgeschaut, aber leider nur ein Beispiel dazu
gefunden. Wer kann mir folgende Fragen beantworten?
1.) Wie finde ich die Tastenkennungen heraus?
2.) Unterscheiden sich die Tastenkennungen der Enter-Taste vom
Nummerblock von der von der Tastatur?
3.) Wie könnte so ein VBA-Script aussehen?
Vielen Dank schon im Voraus.
John
PS.: Bin Anfänger – Brauche auch etwas Erklärung zum Script.
Hallo John,

ich habe das mal so probiert

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
MsgBox KeyCode
End Sub

Ich konnte so aber leider die Entertasten nicht unterscheiden :-(

Gruß

Stephan
John II
2006-05-18 22:26:01 UTC
Permalink
Post by Stephan Nawroth
Hallo John,
ich habe das mal so probiert
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
MsgBox KeyCode
End Sub
Ich konnte so aber leider die Entertasten nicht unterscheiden :-(
Gruß
Stephan
Sorry - bin nicht früher dazugekommen!

Danke - werde ich gleich bei der Minus-Taste testen
stefan onken
2006-05-17 14:06:46 UTC
Permalink
Hallo John,
die Textboxen haben das KeyDown-Ereignis (es gibt auch KeyPress, aber
das reagiert mE nicht auf Return). Doppelklicke im VBA-Editor auf die
Textbox und setze aus den beiden dropdowns oberhalb des großen
Codefenster das Ereignis TextBox1_KeyDown zusammen. Als Codehülse
entsteht dann sowas (der Unterstrich ist hier nur zur besseren
Darstellung):

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)

End Sub

KeyCode enthält die gesuchte Information. Return hat als Keycode 13, +
hat 107.
Schreibe zum ausprobieren einfach mal MsgBox KeyCode in die Codehülse.

Um nun auf die Tastureingaben zu reagieren, könnte der Code etwa so
aussehen:

If KeyCode = 13 Then
TextBox2 = "S"
ElseIf KeyCode = 107 Then
TextBox2 ="H"
End If

Die beiden Enter-Tasten lassen sich nicht unterscheiden.

Gruß
stefan
Post by John II
Hallo Ihr da!
Bin gerade dabei eine Buchhaltungseingabe in einem Userform nachzubauen.
Dazu müsste ich die Tasten Enter bzw. Plus auf dem Nummernblock abfangen.
Denn wenn der Eingabebetrag im ersten Textfeld mit der Enter-Taste (vom
Nummernblock) bestätigt wird, soll ein ,,S" in das nächste Textfeld
geschrieben werden. Bei der Bestätigung des Betrages durch die Plus-Taste
(auf dem Nummernblock) soll ein ,,H" in das Textfeld geschrieben werden. Ich
hab schon im Kompendium nachgeschaut, aber leider nur ein Beispiel dazu
gefunden. Wer kann mir folgende Fragen beantworten?
1.) Wie finde ich die Tastenkennungen heraus?
2.) Unterscheiden sich die Tastenkennungen der Enter-Taste vom
Nummerblock von der von der Tastatur?
3.) Wie könnte so ein VBA-Script aussehen?
Vielen Dank schon im Voraus.
John
PS.: Bin Anfänger - Brauche auch etwas Erklärung zum Script.
John II
2006-05-18 22:32:02 UTC
Permalink
Post by Stephan Nawroth
Hallo John,
die Textboxen haben das KeyDown-Ereignis (es gibt auch KeyPress, aber
das reagiert mE nicht auf Return). Doppelklicke im VBA-Editor auf die
Textbox und setze aus den beiden dropdowns oberhalb des großen
Codefenster das Ereignis TextBox1_KeyDown zusammen. Als Codehülse
entsteht dann sowas (der Unterstrich ist hier nur zur besseren
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
End Sub
KeyCode enthält die gesuchte Information. Return hat als Keycode 13, +
hat 107.
Schreibe zum ausprobieren einfach mal MsgBox KeyCode in die Codehülse.
Um nun auf die Tastureingaben zu reagieren, könnte der Code etwa so
If KeyCode = 13 Then
TextBox2 = "S"
ElseIf KeyCode = 107 Then
TextBox2 ="H"
End If
Die beiden Enter-Tasten lassen sich nicht unterscheiden.
Gruß
stefan
Sorry hab es erst jetzt ausprobiert.

Klappt hervorragend!

Vielen DANK !!!!

John

PS: wenn ich besser bin helfe ich euch mal (;-)

Loading...