Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1288to1292
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

VBA Code für Aktivierung NumLock: Fehler

VBA Code für Aktivierung NumLock: Fehler
06.12.2012 18:00:33
Andreas
Hallo Herber Fans,
in PivotTabellen unter Excel 2010 gibt es die nützliche Funktion über einen Rechtsklick das gerade gewählte PivotItem auszublenden. Da ich diese Funktion in letzter Zeit häufiger nutzte, habe ich sie über VBA abbilden wollen. Da ich in großen PivotTabellen aber nicht alle PivotItems loopen kann (zu rechen-/ zeitaufwändig), habe ich mich für die Nutzung von SendKeys entschieden. Das funktioniert auch ganz gut. Über den ShortCut STRG + b habe ich nun diese Option zur Verfügung. Problem: Dabei wird u.U. die NumLock Taste deaktiviert. Dieser ärgerliche Fehler ist dokumentiert (http://support.microsoft.com/?kbid=179987), aber die hier gemachten Vorschläge („DoEvents“) haben nicht geholfen. Also möchte ich über VBA den Status der NumLock Taste überwachen. Dafür gibt es auch Codes, die ich bisher aber leider nur ansatzweise verstehe. Ich habe in Modul1 meinen OnKey Code für das PivotItem und in Modul4 möchte ich die Überwachung der NumLock Taste (immer ein) realisieren.
Aber alle Recherche war vergebens. Es klappt nicht. Der Code „NUMLOCK_True“ schaltet NumLock nicht ein. Ich kann auch leider nicht auf SendKeys verzichten.
Hat jemand von Euch die NumLock Überwachung schon einmal verwendet/ zum Laufen bekommen. Was ist mein Denkfehler in Modul4?
https://www.herber.de/bbs/user/82926.xlsm
Ich würde mich freuen, wenn ein Forumsteilnehmer sich das Beispiel ansieht und mir einen Tip geben kann, in welche Richtung ich nun weiter forschen muß.
Vielen Dank für Eure Aufmerksamkeit.
Grüße aus Berlin, Andreas Hanisch

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Code für Aktivierung NumLock: Fehler
06.12.2012 19:03:48
schauan
Hallo ANdreas,
wie äußert sich das denn? Passiert nix, kommt ein Fehler ...?
Ich sitze gerade hier an meinem Laptop und hab leider keinen Nummernblock. Ich hab das Makro mal durchlaufen lassen, der Wert vom key 144 wird mit dem coede geändert ...
Grüße, André

AW: VBA Code für Aktivierung NumLock: Fehler
06.12.2012 20:01:14
Nepumuk
Hallo,
das hat sich seit Windows NT geändert.
Option Explicit

Private Declare Sub keybd_event Lib "user32.dll" ( _
    ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32.dll" ( _
    ByRef pbKeyState As KeyboardBytes) As Long

Private Type KeyboardBytes
    kbByte(0 To 255) As Byte
End Type

Private pbKeyState As KeyboardBytes

Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Const KEYEVENTF_KEYDOWN = &H0

Private Function Get_Value() As Boolean
    Call GetKeyboardState(pbKeyState)
    Get_Value = pbKeyState.kbByte(vbKeyNumlock) And 1
End Function

Private Sub Set_Value()
    Call keybd_event(vbKeyNumlock, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYDOWN, 0)
    Call keybd_event(vbKeyNumlock, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
End Sub

Public Sub NUMLOCK_True()
    If Not Get_Value Then Call Set_Value
End Sub

Gruß
Nepumuk

Anzeige
AW: VBA Code für Aktivierung NumLock: Fehler
07.12.2012 10:14:10
Andreas
Hallo Nepumuk,
vielen Dank für Deine Antwort. Es funktioniert tadellos!!! Es hilft mir sehr nun endlich den ShortCut ohne Bedenken einsetzen zu können. Dank Deines NumLock Codes.
Habe ein schönes Wochenende.
Beste Grüße aus Berlin, Andreas Hanisch

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige