VBA et touche verrouillage majuscule

Le
Proust Michel
bonjour à tous
dans une macro VBA, je voudrais lancer :
traitement A si clic bouton B
traitement Z si clic bouton B avec verrouillage majuscule activé (la touche
avec un petit cadenas fermé)
aussi je voudrais savoir comment déterminer que la touche verrouillage
majuscule est activée
merci d'avance pour les infos et bonne journée
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #19220471
bonjour Michel,

pour verifier si la touche VerrMajuscule est acivé :

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

Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long

Dim tKB As KeyboardBytes

Public Function KeyMaj_IsON() As Boolean
If GetKeyboardState(tKB) Then KeyMaj_IsON = tKB.kbByte(VK_CAPITAL)
End Function

Sub test()
If KeyMaj_IsON Then macroA Else: macroB: End If
End Sub

isabelle

Proust Michel a écrit :
bonjour à tous
dans une macro VBA, je voudrais lancer :
traitement A si clic bouton B
traitement Z si clic bouton B avec verrouillage majuscule activé (la touche
avec un petit cadenas fermé)
aussi je voudrais savoir comment déterminer que la touche verrouillage
majuscule est activée
merci d'avance pour les infos et bonne journée





isabelle
Le #19220461
correction :

Sub test()
If KeyMaj_IsON Then macroA Else: macroB
End Sub

isabelle

isabelle a écrit :
bonjour Michel,

pour verifier si la touche VerrMajuscule est acivé :

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

Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long

Dim tKB As KeyboardBytes

Public Function KeyMaj_IsON() As Boolean
If GetKeyboardState(tKB) Then KeyMaj_IsON = tKB.kbByte(VK_CAPITAL)
End Function

Sub test()
If KeyMaj_IsON Then macroA Else: macroB: End If
End Sub

isabelle

Proust Michel a écrit :
bonjour à tous
dans une macro VBA, je voudrais lancer :
traitement A si clic bouton B
traitement Z si clic bouton B avec verrouillage majuscule activé (la
touche avec un petit cadenas fermé)
aussi je voudrais savoir comment déterminer que la touche
verrouillage majuscule est activée
merci d'avance pour les infos et bonne journée






FFO
Le #19219871
Salut à toi

Tu peux utiliser une cellule (A1 dans ma proposition) dans laquelle au grés
de l'activation de la touche de verrouillage la lettre "M" ou "m" sera
intégrée avec ces 2 codes :

Sub TestLock()

Application.OnKey "{CAPSLOCK}", "Verrouillage"

End Sub

Sub Verrouillage()
If Workbooks("Document.xls").Sheets("Feuil1").Range("A1") = "m" Then
Workbooks("Document").Sheets("Feuil1").Range("A1") = "M"
Else
Workbooks("Document.xls").Sheets("Feuil1").Range("A1") = "m"
End If
End Sub

avec dans le ThisWorkbook ces lignes :

Private Sub Workbook_Open()
Run ("TestLock")
End Sub

Il faut juste actualiser la cellule du "M" ou "m" en fonction de l'état
verrouilage Majuscule ou minuscule actif à l'ouverture du document

La manipulation ensuite de la touche verrouillage actualisera
automatiquement cette cellule

Reste à mettre pour tes boutons ceci :

If Workbooks("Document.xls").Sheets("Feuil1").Range("A1") = "m" Then
Run("traitement A")
Else
Run("traitement Z")
End If

Ce n'est pas trés élégant mais fonctionnel à défaut d'une autre solution

Actualises cette partie :

Workbooks("Document.xls").Sheets("Feuil1").Range("A1")

Du nom de ton document de ton onglet et cellule qui auront ce paramètre

Fais des essais et dis moi !!!!
FFO
Le #19219991
Salut isabelle

Trés impressionné par ta proposition je me suis empressé de l'essayer
toujour désireux d'apprendre
Mais hélas minuscule ou Majuscule j'obtiens toujours le même résultat
Je n'ai fais pourtant qu'un stricte copier/coller de tes lignes
Peux tu m'en dire plus !!!!!

Merci à toi
Proust Michel
Le #19219981
merci pour les infos je vais essayer de mettre ça en pratique !?!?
bonne journée

"isabelle" a écrit dans le message de news:

bonjour Michel,

pour verifier si la touche VerrMajuscule est acivé :

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

Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long

Dim tKB As KeyboardBytes

Public Function KeyMaj_IsON() As Boolean
If GetKeyboardState(tKB) Then KeyMaj_IsON = tKB.kbByte(VK_CAPITAL)
End Function

Sub test()
If KeyMaj_IsON Then macroA Else: macroB: End If
End Sub

isabelle

Proust Michel a écrit :
bonjour à tous
dans une macro VBA, je voudrais lancer :
traitement A si clic bouton B
traitement Z si clic bouton B avec verrouillage majuscule activé (la
touche avec un petit cadenas fermé)
aussi je voudrais savoir comment déterminer que la touche verrouillage
majuscule est activée
merci d'avance pour les infos et bonne journée






isabelle
Le #19220301
salut Ffo,

voici le fichier dans lequel j'ai fais le test :
http://cjoint.com/?fbfIPBKaNR

isabelle

FFO a écrit :
Salut isabelle

Trés impressionné par ta proposition je me suis empressé de l'essayer
toujour désireux d'apprendre
Mais hélas minuscule ou Majuscule j'obtiens toujours le même résultat
Je n'ai fais pourtant qu'un stricte copier/coller de tes lignes
Peux tu m'en dire plus !!!!!

Merci à toi




FFO
Le #19221641
Merci beaucoup isabelle

Aprés analyse ces lignes présentes dans ton fichier ne figurent pas dans ta
proposition :

Option Explicit

Private Const VK_CAPITAL As Long = &H14

D'où la difficulté que j'ai rencontré pour faire la fonctionner correctement

Je capitalise

Merci encore
Proust Michel
Le #19227271
ça marche bien merci pour l'aide
pour info est-il possible d'avoir accès à la barre d'état dans Excel ?
bonne journée et bon pont !
"isabelle" a écrit dans le message de news:
%
correction :

Sub test()
If KeyMaj_IsON Then macroA Else: macroB
End Sub

isabelle

isabelle a écrit :
bonjour Michel,

pour verifier si la touche VerrMajuscule est acivé :

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

Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long

Dim tKB As KeyboardBytes

Public Function KeyMaj_IsON() As Boolean
If GetKeyboardState(tKB) Then KeyMaj_IsON = tKB.kbByte(VK_CAPITAL)
End Function

Sub test()
If KeyMaj_IsON Then macroA Else: macroB: End If
End Sub

isabelle

Proust Michel a écrit :
bonjour à tous
dans une macro VBA, je voudrais lancer :
traitement A si clic bouton B
traitement Z si clic bouton B avec verrouillage majuscule activé (la
touche avec un petit cadenas fermé)
aussi je voudrais savoir comment déterminer que la touche verrouillage
majuscule est activée
merci d'avance pour les infos et bonne journée








isabelle
Le #19228591
bonjour Michel,

Proust Michel a écrit :
ça marche bien merci pour l'aide
pour info est-il possible d'avoir accès à la barre d'état dans Excel ?



oui, voici un exemple d'utilisation de la propriété| |StatusBar et
|DisplayStatusBar| (extrait de l'aide) :

Cet exemple montre comment imposer le texte « Please be patient... » à
la barre d'état avant l'ouverture du classeur Large.xls, puis rétablir
le texte par défaut.

|oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.*StatusBar* = "Please be patient..."
Workbooks.Open filename:="LARGE.XLS"
Application.*StatusBar* = False
Application.DisplayStatusBar = oldStatusBar

isabelle
|
Ael Rowen Terence
Le #19229351
"isabelle" a écrit dans le message de groupe de discussion :

bonjour Michel,




|oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.*StatusBar* = "Please be patient..."
Workbooks.Open filename:="LARGE.XLS"
Application.*StatusBar* = False
Application.DisplayStatusBar = oldStatusBar



Bonjour, et pardon de poser une question de néophyte :
Mais que signifie les étoiles dans l'expression : "
Application.*StatusBar*" ?
Publicité
Poster une réponse
Anonyme