Excel VBA OnKey mit Ziffernblock

nochEinAndreas

Stammgast
Hallo zusammen,

für einen anderen Thread in diesem Forum (http://www.pctipp.ch/forum/showthread.php?40355-Excel-Eingabe-von-Zahlen-prüfen-erwzingen/page2) suche ich gerade nach einer alternativen Lösung. Dafür möchte ich die Application.Onkey Methode einsetzen:
Man kann z.B. einen Makro starten, wenn die Taste 1 gedrückt wird mit
Code:
Application.Onkey "1", "makroName"
Das funktioniert aber nur, wenn man die 1-Taste in der oberen Reihe der Tastatur benutzt. Wenn man statt dessen die 1 auf dem Ziffernblock drückt, wird der Makro nicht gestartet.
Ich habe schon im Netz gesucht, weil ich mir dachte, dass die Tasten auf dem Ziffernblock vielleicht andere ASCII Codes haben, und man müsste einen Ausdruck benutzen wie
Code:
Application.Onkey Chr(xxx), "makroName"
Ich habe aber nichts Passendes gefunden.
hat jemand der Experten hier (hast du Niclaus) vielleicht eine passende Idee?

Danke und Grüße,
Andreas
 

weer

Stammgast
Hallo Andreas

Es tut mir leid: Ich habe keine Ahnung und kenne mich da nicht aus. Hängt das damit zusammen, dass durch einen bestimmten Code NumLock ausgeschaltet wird?

Auf der Seite
http://www.clever-excel-forum.de/thread-497.html
habe ich gelesen: "per API lässt sich der Status der NUM-Taste abfragen und gegebenenfalls aktivieren." Dort wird auch verwiesen auf
http://www.office-loesung.de/ftopic251887_0_0_asc.php
Dort gibt es eine Tabelle, wo für vbKey1 die Codezahl 48 aufgeführt ist und für vbKeyNumpad1 ein Code 0x61. Ist das letztere die 1 auf dem Nummernblock? und 0x61 ein Hexadezimal-Code?

Viele Grüsse
 

nochEinAndreas

Stammgast
Vielen Vielen Dank !!!

Hallo Niclaus,

suuuper, vielen Dank!
Die letzte Antwort in deinem zweiten Link hat mich auf die richtige Spur geführt. Jetzt kann ich auch die Tastendrücke auf der Zehner-Tastatur abfangen. Das ist ein kleiner Schritt für einen Menschen, aber ein großer Sprung für ... meinen Makro (Quizfrage: wer hat das so ähnlich am 21.7.1969 gesagt?).

Viele Grüße,
Andreas
 
Oben