Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
140to144
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
140to144
140to144
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

OnKey für numerischen Tastenblock

OnKey für numerischen Tastenblock
31.07.2002 09:18:51
Carsten
Hallo!

Hat jemand eine Ahnung, ob man das OnKey-Ereignis auch für die Tasten des numerischen Tastenblocks der Tastatur hinbekommt?

Vielen Dank im Voraus.

Sonnige Grüße,
Carsten

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: OnKey für numerischen Tastenblock
31.07.2002 09:36:18
Frederik Fuhrmann
Hallo!

Schau mal im Archiv nach, da steht sowas drin, weiß auch net ganau wo.

Gruß
F.

Re: OnKey für numerischen Tastenblock
31.07.2002 09:50:06
Carsten
Danke, F., aber dort bin ich leider nicht fündig geworden.
Carsten
Re: OnKey für numerischen Tastenblock
31.07.2002 10:15:17
Carsten
Nochmals Danke, Frederik, aber auch dort habe ich leider nichts finden können, was mir weiterhelfen könnte ... Der Link als solches führte ins Nirwana und unter http://www.schmittis-page.de, dann den Link zu Excel und schließlich zu VBA war kein Eintrag zu finden, der mich weiterbringen könnte.

Carsten

Anzeige
Re: OnKey für numerischen Tastenblock
31.07.2002 10:20:13
Frederik Fuhrmann
Jetzt aber!

Die folgenden Routinen setzen oder ermitteln den Status der Tasten
Numlock, Capslock und Scroll-Lock:


Private Declare Function GetKeyboardState Lib "user32" _
(pbKeyState As Byte) As LongPrivate Declare Function GetKeyState Lib "user32" _
(ByVal nVirtKey As Long) As IntegerPrivate Declare Function GetVersionEx Lib "kernel32" _
Alias "GetVersionExA" (lpVersionInformation As _
OSVERSIONINFO) As LongPrivate Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Private Declare Function SetKeyboardState Lib "user32" _
(lppbKeyState As Byte) As LongPrivate Const VER_PLATFORM_WIN32_NT = 2
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_CAPS = &H14
Private Const VK_NUM = &H90
Private Const VK_SCROLL = &H91Private keys(0 To 255) As BytePrivate Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End TypePrivate oSv As OSVERSIONINFOPrivate Function KeyStatus(Taste) As Boolean
Dim bInsertKeyState As Boolean
oSv.dwOSVersionInfoSize = Len(oSv)
GetVersionEx oSv
GetKeyboardState keys(0)
KeyStatus = keys(Taste)
End FunctionPrivate Sub Switch(Taste, AnAus As Boolean)
If (KeyStatus(Taste) <> AnAus) Then
If (oSv.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS) Then
keys(Taste) = 1
SetKeyboardState keys(0)
ElseIf (oSv.dwPlatformId = VER_PLATFORM_WIN32_NT) Then
keybd_event Taste, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
keybd_event Taste, &H45, KEYEVENTF_EXTENDEDKEY Or _
KEYEVENTF_KEYUP, 0
End If
End If
End SubPublic Sub An()
Switch VK_NUM, 1
Switch VK_CAPS, 1
Switch VK_SCROLL, 1
End SubPublic Sub Aus()
Switch VK_NUM, 0
Switch VK_CAPS, 0
Switch VK_SCROLL, 0
End SubPublic Sub Status()
MsgBox "Num : " & KeyStatus(VK_NUM) & vbNewLine & _
"Caps: " & KeyStatus(VK_CAPS) & vbNewLine & _
"Scroll: " & KeyStatus(VK_SCROLL), _
vbExclamation, "Tastenstatus"
End Sub

Anzeige
Re: OnKey für numerischen Tastenblock
31.07.2002 10:40:08
Carsten
Abermals Danke, Frederik, aber mein Problem ist ein ganz anderes: Wenn ich ein Ereignis für die Taste "1" festlege (Application.OnKey "1", "Ereignisprozedur"), dann funktioniert das für die "1" auf dem alphanumerischen Tastenblock, nicht aber für die "1" auf dem Ziffernblock der Tastatur! Das bräuchte ich aber.

Carsten

Sorry, hab dich fasch verstanden - keine Ahnung!
31.07.2002 10:45:55
Frederik Fuhrmann
.
Aus der Excel-Hilfe
31.07.2002 17:30:12
mattis
Ich habs noch nicht ausprobiert,
aber die Keys der Zehner-Tastatur
haben Ihre Konstanten:

vbKeyNumpad0..vbKey_Numpad9

Versuche Sie mal so anzusprechen

Gruß
mattis

Re: Aus der Excel-Hilfe
31.07.2002 17:32:39
Carsten
Danke, Frederik, hab' ich auch schon probiert, funktioniert aber leider nicht.

Carsten

Anzeige
Ich bin der mattis, ne ; ) o.T.
31.07.2002 17:36:56
mattis

Re: OnKey für numerischen Tastenblock
03.08.2002 16:39:58
Otto
Hallo Carsten,

ich sehe nicht, dass Du mit den Ziffern im Ziffernblock mit OnKey ein Ereignis auslösen kannst.
Allerdings hast Du uns bisher nicht verraten, in welchem Zusammenhang Du das brauchst. Denn zum Beispiel in einer Userform-Textbox gibt es das Ereignis KeyDown mit dem Du deutlich unterscheiden kannst, welche 1 gedrückt wurde. (mattis hat mich auf die Idee mit seinem Hinweis auf vbKeyNumpad1 gebracht).

Gruß Otto

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige