activer touche verr Majusc+voyant à l'ouverture du fichier
1 réponse
Thierry K
Bonjour à toutes et à tous
je souhaite que la touche verr maj. soit activée lors de l'ouverture du
fichier.
j'ai trouvé une macro qui marche mais le voyant n'est pas en cohérence avec
la touche
voir ci dessous
auriez vous une solution pour que le voyant soit allumé lorsque le verr
majuscule est activé
et eteind le voyant lorsque la saisie est en minuscule.
merci d'avance pour votre aide
excel 2003 win XP Pro
Thierry K
code trouvé avec google donné par Papou
'Fonction état d'une touche
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
'Fonction lire état des touches clavier
Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As
Long
'Fonction définir état des toucvhes clavier
Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As
Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'*** Debut *************
'constante touche majuscules
Const VK_CAPITAL = &H14
'verr num
Const VK_NUMLOCK = &H90
'arrêt défil
Const VK_SCROLL = &H91
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
'Macro de désactivation touje MAJ
Public Sub DesactiveMAJ()
'si la touche MAJ est active
If GetKeyState(VK_CAPITAL) = 1 Then
'récupérer l'état actuel des touches clavier (pour utilisation éventuelle)
GetKeyboardState KbOld
'appel de turnooff pour la touche MAJ
TurnOff VK_CAPITAL
'si la touche MAJ n'est pas active on affiche un message d'info
Else: MsgBox "La touche MAJ n'est pas active", vbInformation, "MAJ non
activée """
End If
End Sub
'Macro d'acitvation de MAJ
Public Sub ActiveMAJ()
'si la touche MAJ n'est pas active
If GetKeyState(VK_CAPITAL) = 0 Then
'récupérer l'état actuel des touches clavier (pour utilisation éventuelle)
GetKeyboardState KbOld
'appel de turnon pour la touche MAJ
TurnOn VK_CAPITAL
'sinon on affiche un message d'info
Else: MsgBox "La touche MAJ est déjà active", vbInformation, "MAJ activée"
End If
End Sub
'routine de désactivation de touche (prend en paramètre l'id de la touche)
Public Sub TurnOff(vkKey As Long)
'appel de la fonction pour lire l'état actuel des touches
GetKeyboardState kbArray
'définition de la valeur 0 (zéro) pour la désactivation
kbArray.kbByte(vkKey) = 0
'définition de l'état du clavier
SetKeyboardState kbArray
End Sub
'routin d'activation de touche (prend en paramètre l'id de la touche)
Public Sub TurnOn(vkKey As Long)
'appel de la fonction pour lire l'état actuel des touches
GetKeyboardState kbArray
'définition de la valeur 1 (un) pour l'activation
kbArray.kbByte(vkKey) = 1
'définition de l'état du clavier
SetKeyboardState kbArray
End Sub
'*** Fin code ***
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ChrisV
Bonjour Thierry K,
Dans la feuille de code de ThisWokbook
Private Sub Workbook_Open() TestOnOn End Sub
Dans un module
Option Explicit 'Michel Pierron Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 ' Maintenance string for PSS usage End Type 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
Sub Toggle_NC(Optional NUM% = 1, Optional CAPS% = 1) Dim o As OSVERSIONINFO o.dwOSVersionInfoSize = Len(o) GetVersionEx o Dim keys(0 To 255) As Byte: GetKeyboardState keys(0) If keys(&H90) <> NUM Then ' Turn numlock If o.dwPlatformId = 1 Then ' -> Win95/98 keys(&H90) = NUM: SetKeyboardState keys(0) ElseIf o.dwPlatformId = 2 Then ' -> WinNT keybd_event &H90, &H45, &H1 Or 0, 0 ' Simulate Key Press keybd_event &H90, &H45, &H1 Or &H2, 0 ' Simulate Key Release End If End If If keys(&H14) <> CAPS Then ' Turn capslock If o.dwPlatformId = 1 Then ' -> Win95/98 keys(&H14) = CAPS: SetKeyboardState keys(0) ElseIf o.dwPlatformId = 2 Then ' -> WinNT keybd_event &H14, &H45, &H1 Or 0, 0 ' Simulate Key Press keybd_event &H14, &H45, &H1 Or &H2, 0 ' Simulate Key Release End If End If End Sub
Sub TestOnOn() Toggle_NC 1, 1 End Sub
Sub TestOnOff() Toggle_NC 1, 0 End Sub
Sub TestOffOn() Toggle_NC 0, 1 End Sub
Sub TestOffOff() Toggle_NC 0, 0 End Sub
ChrisV
"Thierry K" a écrit dans le message de news: 425c1da5$0$834$
Bonjour à toutes et à tous
je souhaite que la touche verr maj. soit activée lors de l'ouverture du fichier. j'ai trouvé une macro qui marche mais le voyant n'est pas en cohérence avec la touche voir ci dessous
auriez vous une solution pour que le voyant soit allumé lorsque le verr majuscule est activé et eteind le voyant lorsque la saisie est en minuscule.
merci d'avance pour votre aide excel 2003 win XP Pro
Thierry K
code trouvé avec google donné par Papou 'Fonction état d'une touche Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
'Fonction lire état des touches clavier Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
'Fonction définir état des toucvhes clavier Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'*** Debut ************* 'constante touche majuscules Const VK_CAPITAL = &H14 'verr num Const VK_NUMLOCK = &H90 'arrêt défil Const VK_SCROLL = &H91 Private Type KeyboardBytes kbByte(0 To 255) As Byte End Type 'Macro de désactivation touje MAJ Public Sub DesactiveMAJ() 'si la touche MAJ est active If GetKeyState(VK_CAPITAL) = 1 Then 'récupérer l'état actuel des touches clavier (pour utilisation éventuelle) GetKeyboardState KbOld 'appel de turnooff pour la touche MAJ TurnOff VK_CAPITAL 'si la touche MAJ n'est pas active on affiche un message d'info Else: MsgBox "La touche MAJ n'est pas active", vbInformation, "MAJ non activée """ End If End Sub 'Macro d'acitvation de MAJ Public Sub ActiveMAJ() 'si la touche MAJ n'est pas active If GetKeyState(VK_CAPITAL) = 0 Then 'récupérer l'état actuel des touches clavier (pour utilisation éventuelle) GetKeyboardState KbOld 'appel de turnon pour la touche MAJ TurnOn VK_CAPITAL 'sinon on affiche un message d'info Else: MsgBox "La touche MAJ est déjà active", vbInformation, "MAJ activée" End If End Sub 'routine de désactivation de touche (prend en paramètre l'id de la touche) Public Sub TurnOff(vkKey As Long) 'appel de la fonction pour lire l'état actuel des touches GetKeyboardState kbArray 'définition de la valeur 0 (zéro) pour la désactivation kbArray.kbByte(vkKey) = 0 'définition de l'état du clavier SetKeyboardState kbArray End Sub 'routin d'activation de touche (prend en paramètre l'id de la touche) Public Sub TurnOn(vkKey As Long) 'appel de la fonction pour lire l'état actuel des touches GetKeyboardState kbArray 'définition de la valeur 1 (un) pour l'activation kbArray.kbByte(vkKey) = 1 'définition de l'état du clavier SetKeyboardState kbArray End Sub '*** Fin code ***
Bonjour Thierry K,
Dans la feuille de code de ThisWokbook
Private Sub Workbook_Open()
TestOnOn
End Sub
Dans un module
Option Explicit
'Michel Pierron
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type
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
Sub Toggle_NC(Optional NUM% = 1, Optional CAPS% = 1)
Dim o As OSVERSIONINFO
o.dwOSVersionInfoSize = Len(o)
GetVersionEx o
Dim keys(0 To 255) As Byte: GetKeyboardState keys(0)
If keys(&H90) <> NUM Then ' Turn numlock
If o.dwPlatformId = 1 Then ' -> Win95/98
keys(&H90) = NUM: SetKeyboardState keys(0)
ElseIf o.dwPlatformId = 2 Then ' -> WinNT
keybd_event &H90, &H45, &H1 Or 0, 0 ' Simulate Key Press
keybd_event &H90, &H45, &H1 Or &H2, 0 ' Simulate Key Release
End If
End If
If keys(&H14) <> CAPS Then ' Turn capslock
If o.dwPlatformId = 1 Then ' -> Win95/98
keys(&H14) = CAPS: SetKeyboardState keys(0)
ElseIf o.dwPlatformId = 2 Then ' -> WinNT
keybd_event &H14, &H45, &H1 Or 0, 0 ' Simulate Key Press
keybd_event &H14, &H45, &H1 Or &H2, 0 ' Simulate Key Release
End If
End If
End Sub
Sub TestOnOn()
Toggle_NC 1, 1
End Sub
Sub TestOnOff()
Toggle_NC 1, 0
End Sub
Sub TestOffOn()
Toggle_NC 0, 1
End Sub
Sub TestOffOff()
Toggle_NC 0, 0
End Sub
ChrisV
"Thierry K" <thierryw.kolbx@ysnzcf.fr> a écrit dans le message de news:
425c1da5$0$834$8fcfb975@news.wanadoo.fr...
Bonjour à toutes et à tous
je souhaite que la touche verr maj. soit activée lors de l'ouverture du
fichier.
j'ai trouvé une macro qui marche mais le voyant n'est pas en cohérence
avec la touche
voir ci dessous
auriez vous une solution pour que le voyant soit allumé lorsque le verr
majuscule est activé
et eteind le voyant lorsque la saisie est en minuscule.
merci d'avance pour votre aide
excel 2003 win XP Pro
Thierry K
code trouvé avec google donné par Papou
'Fonction état d'une touche
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
'Fonction lire état des touches clavier
Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes)
As Long
'Fonction définir état des toucvhes clavier
Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes)
As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'*** Debut *************
'constante touche majuscules
Const VK_CAPITAL = &H14
'verr num
Const VK_NUMLOCK = &H90
'arrêt défil
Const VK_SCROLL = &H91
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
'Macro de désactivation touje MAJ
Public Sub DesactiveMAJ()
'si la touche MAJ est active
If GetKeyState(VK_CAPITAL) = 1 Then
'récupérer l'état actuel des touches clavier (pour utilisation éventuelle)
GetKeyboardState KbOld
'appel de turnooff pour la touche MAJ
TurnOff VK_CAPITAL
'si la touche MAJ n'est pas active on affiche un message d'info
Else: MsgBox "La touche MAJ n'est pas active", vbInformation, "MAJ non
activée """
End If
End Sub
'Macro d'acitvation de MAJ
Public Sub ActiveMAJ()
'si la touche MAJ n'est pas active
If GetKeyState(VK_CAPITAL) = 0 Then
'récupérer l'état actuel des touches clavier (pour utilisation éventuelle)
GetKeyboardState KbOld
'appel de turnon pour la touche MAJ
TurnOn VK_CAPITAL
'sinon on affiche un message d'info
Else: MsgBox "La touche MAJ est déjà active", vbInformation, "MAJ activée"
End If
End Sub
'routine de désactivation de touche (prend en paramètre l'id de la touche)
Public Sub TurnOff(vkKey As Long)
'appel de la fonction pour lire l'état actuel des touches
GetKeyboardState kbArray
'définition de la valeur 0 (zéro) pour la désactivation
kbArray.kbByte(vkKey) = 0
'définition de l'état du clavier
SetKeyboardState kbArray
End Sub
'routin d'activation de touche (prend en paramètre l'id de la touche)
Public Sub TurnOn(vkKey As Long)
'appel de la fonction pour lire l'état actuel des touches
GetKeyboardState kbArray
'définition de la valeur 1 (un) pour l'activation
kbArray.kbByte(vkKey) = 1
'définition de l'état du clavier
SetKeyboardState kbArray
End Sub
'*** Fin code ***
Option Explicit 'Michel Pierron Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 ' Maintenance string for PSS usage End Type 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
Sub Toggle_NC(Optional NUM% = 1, Optional CAPS% = 1) Dim o As OSVERSIONINFO o.dwOSVersionInfoSize = Len(o) GetVersionEx o Dim keys(0 To 255) As Byte: GetKeyboardState keys(0) If keys(&H90) <> NUM Then ' Turn numlock If o.dwPlatformId = 1 Then ' -> Win95/98 keys(&H90) = NUM: SetKeyboardState keys(0) ElseIf o.dwPlatformId = 2 Then ' -> WinNT keybd_event &H90, &H45, &H1 Or 0, 0 ' Simulate Key Press keybd_event &H90, &H45, &H1 Or &H2, 0 ' Simulate Key Release End If End If If keys(&H14) <> CAPS Then ' Turn capslock If o.dwPlatformId = 1 Then ' -> Win95/98 keys(&H14) = CAPS: SetKeyboardState keys(0) ElseIf o.dwPlatformId = 2 Then ' -> WinNT keybd_event &H14, &H45, &H1 Or 0, 0 ' Simulate Key Press keybd_event &H14, &H45, &H1 Or &H2, 0 ' Simulate Key Release End If End If End Sub
Sub TestOnOn() Toggle_NC 1, 1 End Sub
Sub TestOnOff() Toggle_NC 1, 0 End Sub
Sub TestOffOn() Toggle_NC 0, 1 End Sub
Sub TestOffOff() Toggle_NC 0, 0 End Sub
ChrisV
"Thierry K" a écrit dans le message de news: 425c1da5$0$834$
Bonjour à toutes et à tous
je souhaite que la touche verr maj. soit activée lors de l'ouverture du fichier. j'ai trouvé une macro qui marche mais le voyant n'est pas en cohérence avec la touche voir ci dessous
auriez vous une solution pour que le voyant soit allumé lorsque le verr majuscule est activé et eteind le voyant lorsque la saisie est en minuscule.
merci d'avance pour votre aide excel 2003 win XP Pro
Thierry K
code trouvé avec google donné par Papou 'Fonction état d'une touche Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
'Fonction lire état des touches clavier Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
'Fonction définir état des toucvhes clavier Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'*** Debut ************* 'constante touche majuscules Const VK_CAPITAL = &H14 'verr num Const VK_NUMLOCK = &H90 'arrêt défil Const VK_SCROLL = &H91 Private Type KeyboardBytes kbByte(0 To 255) As Byte End Type 'Macro de désactivation touje MAJ Public Sub DesactiveMAJ() 'si la touche MAJ est active If GetKeyState(VK_CAPITAL) = 1 Then 'récupérer l'état actuel des touches clavier (pour utilisation éventuelle) GetKeyboardState KbOld 'appel de turnooff pour la touche MAJ TurnOff VK_CAPITAL 'si la touche MAJ n'est pas active on affiche un message d'info Else: MsgBox "La touche MAJ n'est pas active", vbInformation, "MAJ non activée """ End If End Sub 'Macro d'acitvation de MAJ Public Sub ActiveMAJ() 'si la touche MAJ n'est pas active If GetKeyState(VK_CAPITAL) = 0 Then 'récupérer l'état actuel des touches clavier (pour utilisation éventuelle) GetKeyboardState KbOld 'appel de turnon pour la touche MAJ TurnOn VK_CAPITAL 'sinon on affiche un message d'info Else: MsgBox "La touche MAJ est déjà active", vbInformation, "MAJ activée" End If End Sub 'routine de désactivation de touche (prend en paramètre l'id de la touche) Public Sub TurnOff(vkKey As Long) 'appel de la fonction pour lire l'état actuel des touches GetKeyboardState kbArray 'définition de la valeur 0 (zéro) pour la désactivation kbArray.kbByte(vkKey) = 0 'définition de l'état du clavier SetKeyboardState kbArray End Sub 'routin d'activation de touche (prend en paramètre l'id de la touche) Public Sub TurnOn(vkKey As Long) 'appel de la fonction pour lire l'état actuel des touches GetKeyboardState kbArray 'définition de la valeur 1 (un) pour l'activation kbArray.kbByte(vkKey) = 1 'définition de l'état du clavier SetKeyboardState kbArray End Sub '*** Fin code ***