Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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
Inhaltsverzeichnis

SendKeys ("%{Down}")

SendKeys ("%{Down}")
23.01.2020 10:14:14
Herbert
Hallo,
mit dem nachfolgenden Code öffne ich Zellen-DropDown-Listen, wenn die Zelle mit dem Cursor aktiviert wird. Das funktioniert auch prima. Allerdings wird dabei jedes Mal der "NumLock" ausgeschaltet. Jetzt habe ich es schon mit den u. a. angegebenen Codezeilen (SendKeys "{NUMLOCK}", True) probiert, aber das funktioniert nicht dauerhaft. Habt ihr evtl. eine Idee, woran das liegt?
Ich verwende übrigens Excel 64Bit auf Windows 10 Pro 64Bit.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Invalidation As Integer
On Error GoTo ende
Invalidation = Target.Validation.Type
On Error GoTo 0
If Cells(Target.Row, Target.Column - 1)  "xxx" Then
If Target.Row = 8 Then
If Invalidation = 3 Then
SendKeys ("%{Down}")
SendKeys "{NUMLOCK}", True
End If
End If
End If
ende:
If Not CBool(GetKeyState(KeyCodeConstants.vbKeyNumlock)) Then
SendKeys "{NUMLOCK}", True
End If
Invalidation = 0
End Sub

Servus

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SendKeys ("%{Down}")
23.01.2020 10:50:33
volti
Hallo Herbert,
ich mache das immer so:
Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _
        pbKeyState As Byte) As Long
Sub TestSendKeys()
 SendMyKeys "Abc"
End Sub
Sub SendMyKeys(Was As String)
'Nummernblockeinstellung merken, SendKeys abschicken, Nummernblock ggf. wiederherstellen
'GetKeyboardState Keys(0) Keyboard-Array füllen
 Dim Keys(0 To 255) As Byte, bNumBlock As Byte
 GetKeyboardState Keys(0): bNumBlock = Keys(VK_NUMLOCK)
 SendKeys Was
 GetKeyboardState Keys(0): If bNumBlock <> Keys(VK_NUMLOCK) Then SendKeys "{NUMLOCK}"
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: SendKeys ("%{Down}")
23.01.2020 11:07:23
Herbert
Hallo Karl-Heinz,
vielen Dank für deinen Vorschlag. Aber leider funktioniert er bei mir nicht. Er schaltet zwar den NL ein, aber bei der nächsten DropDown-Zelle schaltet er ihn wieder aus, und wieder ein und wieder aus, usw. Ich habe jetzt genervt aufgegeben und löse es mit UserForms.
Servus
AW: SendKeys ("%{Down}")
23.01.2020 11:25:03
volti
Hallo Herbert,
falls doch noch Bedarf besteht:
Hatte vergessen, die Konstante VK_NUMLOCK mit zukopieren....:-(
Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _
        pbKeyState As Byte) As Long
Private Const VK_NUMLOCK = &H90
Sub TestSendKeys()
 SendMyKeys "Abc"
End Sub
Sub SendMyKeys(Was As String)
'Nummernblockeinstellung merken, SendKeys abschicken, Nummernblock ggf. wiederherstellen
'GetKeyboardState Keys(0) Keyboard-Array füllen
 Dim Keys(0 To 255) As Byte, bNumBlock As Byte
 GetKeyboardState Keys(0): bNumBlock = Keys(VK_NUMLOCK)
 SendKeys Was
 GetKeyboardState Keys(0): If bNumBlock <> Keys(VK_NUMLOCK) Then SendKeys "{NUMLOCK}"
End Sub

viele Grüße
Karl-Heinz

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige