![]() |
|
Forum
|
|
|
#2 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
|
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 |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: août 2005
Messages: 159
|
Merci pour ta réponse.
Mais je n'arrive pas à appliquer ceci à ma feuille. Je vais sur 'visualiser code' de ma feuille, mais si je rentre ce code, cela ne marche pas. Où dois-je le mettre ? :huh: |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
|
colle ça dans un module standard. Ensuite, depuis la partie code de ta feuille, tu peux l'appeler ainsi :
VerrouillageMaj = True ou VerrrouillageMaj = False |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: août 2005
Messages: 159
|
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,..... ![]() |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: août 2005
Messages: 159
|
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 |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
|
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 |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Near the pink town
Messages: 2 524
|
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 |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
|
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 |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|