vba commande pour activer le pavé numérique (ver num)

philppe27

XLDnaute Occasionnel
Bonsoir,

Je cherche une commande vba ou sendkeys pour activer mon pavé numérique (ver num). Je suis sous Vista.
Merci d'avance,

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : vba commande pour activer le pavé numérique (ver num)

Bonsoir


Test ok sous VISTA

source du code d'origine
Code:
Option Explicit
'Declaration API
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

' API declarations:

Private Declare Function GetVersionEx Lib "kernel32" _
Alias "GetVersionExA" _
(lpVersionInformation As OSVERSIONINFO) As Long

Private 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 GetKeyboardState Lib "user32" _
(pbKeyState As Byte) As Long

Private Declare Function SetKeyboardState Lib "user32" _
(lppbKeyState As Byte) As Long

' Constant declarations:
Const VK_NUMLOCK = &H90
Const VK_CAPITAL = &H14
Const VK_SCROLL = &H91

Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Const VER_PLATFORM_WIN32_NT = 2
Const VER_PLATFORM_WIN32_WINDOWS = 1


Sub ActiveKEYPAD()
Dim o As OSVERSIONINFO
Dim NumLockState As Boolean
Dim ScrollLockState As Boolean
Dim CapsLockState As Boolean

o.dwOSVersionInfoSize = Len(o)
GetVersionEx o
Dim keys(0 To 255) As Byte
GetKeyboardState keys(0)

' CapsLock handling:
NumLockState = keys(VK_NUMLOCK)
If CapsLockState <> True Then    'Turn capslock on
If o.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then  '=== Win95/98
keys(VK_NUMLOCK) = 1
SetKeyboardState keys(0)
ElseIf o.dwPlatformId = VER_PLATFORM_WIN32_NT Then   '=== WinNT
'Simulate Key Press
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
'Simulate Key Release
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY _
Or KEYEVENTF_KEYUP, 0
End If
End If

End Sub
 
Dernière édition:

philppe27

XLDnaute Occasionnel
Re : vba commande pour activer le pavé numérique (ver num)

Merci pour ces infos Staple, mais j'ai du mal à savoir comment utiliser ces codes. En fait, j'ai un programme qui va sur une page web pour récupérer des informations et les copier sur excel et ceci en boucle.
Or le programme plante car à certains moments le pavé numérique se désactive.
Je voudrais donc introduire un code dans la boucle qui analyse si le pavé numérique est activé pour le réactiver s'il ne l'est pas.
Quelqu'un peut-il m'aider ?

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
311 730
Messages
2 081 978
Membres
101 854
dernier inscrit
micmag26