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 :
Sub test()
If KeyMaj_IsON Then macroA Else: macroB
End Sub
isabelle
isabelle a �crit :
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 !!!!
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
"isabelle" <i@v> a �crit dans le message de news:
eMg3GVMy...@TK2MSFTNGP03.phx.gbl...
voici le fichier dans lequel j'ai fais le test :
http://cjoint.com/?fbfIPBKaNR
isabelle
FFO a écrit :
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 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
|
> |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*" ?
Ael Rowen Terence a �crit :
> Bonjour, et pardon de poser une question de n�ophyte :
> Mais que signifie les �toiles dans l'expression : "
> Application.*StatusBar*" ?
c'est ce qui arrive lorsque l'on fait un copier coller directement de
l'aide excel dans un message texte,
ces caract�res ne font pas partie du code, toutes mes excuses,
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "Please be patient..."
Workbooks.Open Filename:="LARGE.XLS"
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
isabelle
A qui ce n'est arriv� me lance le premier paquet d'octets ... :-)
Les ᅵtoile sont lᅵ pour mettre en gras le mot "StatusBar". Avec mon
lecteur (MesNews), les ᅵtoiles n'apparraissent pas mais le mot est en
gras
--
JLuc
ᅵ Celui qui trouve sans chercher est celui qui a longtemps cherchᅵ
sans trouver. ᅵ - Gaston BACHELARD