Verrouillage majuscule

guenfood

XLDnaute Occasionnel
Bonjour,

Y a t'il moyen en VBA (dans le code de la feuille), d'activer la touche de verrouillage majuscule ?

Merci par avance.
 

Ti_

Nous a quitté
Repose en paix
oui, avec une API. Utilise le code suivant :

Private Declare Sub keybd_event Lib 'user32.dll' (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags&, ByVal dwExtraInfo&)

Property Let VerrouillageMaj(ByVal OnOff As Boolean)
'Ti
keybd_event IIf(OnOff, vbKeyCapital, vbKeyShift), 0, 0, 0
keybd_event IIf(OnOff, vbKeyCapital, vbKeyShift), 0, &H2, 0
End Property

Sub test()
VerrouillageMaj = True
End Sub
 

guenfood

XLDnaute Occasionnel
Merci, ca marche nickel, MAIS une fois sur 2 :S

Dès que j'effectue un click ou que je change de case avec les flèches, cela change le verrouillage.
En gros, c'est une fois majuscule, une fois minuscule, une fois majuscule,.....


:eek:
 

guenfood

XLDnaute Occasionnel
Voici donc le code tel que je l'ai tapé :
Code:
Private Declare Sub keybd_event Lib 'user32.dll' (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags&, ByVal dwExtraInfo&)

Property Let VerrouillageMaj(ByVal OnOff As Boolean)
'Ti
keybd_event IIf(OnOff, vbKeyCapital, vbKeyShift), 0, 0, 0
keybd_event IIf(OnOff, vbKeyCapital, vbKeyShift), 0, &H2, 0
End Property

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
VerrouillageMaj = True
End Sub

Ceci comme vous pouvez le voir, dans 'visualiser le code' de ma feuille.
 

Ti_

Nous a quitté
Repose en paix
Oui, chez moi ça marche parfaitement, mais j'y pense, ton clavier ne doit pas être configuré comme le mien (on en a discuté il y a quelque temps sur le forum de ces problèmes de clavier).
Bon, de toute façon, je suppose que tu veux simplement que tes saisies se fassent en majuscules dans tes cellules, alors dans ce cas, il peut être plus simple (et plus sûr) d'utiliser un autre événement, ainsi :

Private Sub Worksheet_Change(ByVal Target As Range)
Target = UCase(Target)
End Sub

Message édité par: Ti_, à: 23/08/2005 14:32
 

Celeda

XLDnaute Barbatruc
Bonjour,

Même si cela est résolu pour guenfood, cela n'est pas parfait pour mo: je t'explique Ti

la macro continue à tourner et l'écan tremble et en bas il est affiché 100 % recalcul,

je ne veux pas t'embêter, mais je trouve cela un peu gênant.... :(

est-ce dû à ma version xl ici, 2000
Merci

Celeda
 

Ti_

Nous a quitté
Repose en paix
ah oui ma petite dame, je vois ce que c'est :)

essaie comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Static OnIt%
if Not OnIt Then
OnIt = True
Target = UCase(Target)
OnIt = False
End If
End Sub
 

Statistiques des forums

Discussions
312 330
Messages
2 087 341
Membres
103 524
dernier inscrit
Smile1813