OVH Cloud OVH Cloud

Touche Majuscule

18 réponses
Avatar
JYZ
Bjr,

Je cherche a faire une macro qui detecte si la touche majuscule est active
Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci

10 réponses

1 2
Avatar
papou
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche majuscule est active
Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci




Avatar
JYZ
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche majuscule est
active


Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci








Avatar
papou
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ (dans ton
cas)

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:2jpQc.10421$
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche majuscule est
active


Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci












Avatar
JYZ
J'ai tout installé dans un module mais il aime pas et me fait une erreur sur
l'instructon Private .... kbBytes (0 to 255)

Les 3 Private sont en rouge !!!

Je suis sous 2003 ??

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ (dans ton
cas)

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:2jpQc.10421$
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche majuscule est
active


Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci
















Avatar
sabatier
moi, c'est des API hours que je passe avec ces trucs et elles n'ont rien à
voir avec celles pendant lesquels on boit des grands coups ; là, on aurait
plutôt tendance à sécher....
jps

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ (dans ton
cas)



Avatar
Papou
Re
Tout ce que je t'ai envoyé doit être placé tel quel dans l'ordre dans un
module *sans rien au-dessus*, sinon tu auras effectivement un plantage.
Je l'ai testé personnellement au boulot et ça fonctionne bien (Excel 2003
WinXP Pro)
Il faut également (et surtout) veiller aux sauts de lignes intempestifs (à
mon avis c'est plus certainement ton problème)
Donc pour y voir plus clair :
'Ligne 1
Const VK_CAPITAL = &H14
'Ligne 2
Private Type KeyboardBytes
'Ligne 3
kbByte(0 To 255) As Byte
'Ligne 4
End Type
'Ligne 5
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
'Ligne 6
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 7
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 8
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'Ligne 9
Sub DesactiveMAJ()
'Ligne 10
GetKeyboardState KbOld
'Ligne 11
TurnOff VK_CAPITAL
'Ligne 12
End Sub
'Ligne 13
Sub ActiveMAJ()
'Ligne 14
GetKeyboardState KbOld
'Ligne 15
TurnOn VK_CAPITAL
'Ligne 16
End Sub
'Ligne 17
Private Sub TurnOff(vkKey As Long)
'Ligne 18
GetKeyboardState kbArray
'Ligne 19
kbArray.kbByte(vkKey) = 0
'Ligne 20
SetKeyboardState kbArray
'Ligne 21
End Sub
'Ligne 22
Private Sub TurnOn(vkKey As Long)
'Ligne 23
GetKeyboardState kbArray
'Ligne 24
kbArray.kbByte(vkKey) = 1
'Ligne 25
SetKeyboardState kbArray
'Ligne 26
End Sub

Ouf :-))

PS si ça ne marche toujours pas je t'envoie un classeur avec le code bien
placé si tu veux.
Cordialement
Pascal


"JYZ" a écrit dans le message de
news:73xQc.10510$
J'ai tout installé dans un module mais il aime pas et me fait une erreur
sur

l'instructon Private .... kbBytes (0 to 255)

Les 3 Private sont en rouge !!!

Je suis sous 2003 ??

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ (dans
ton


cas)

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:2jpQc.10421$
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long)
As




Integer
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche majuscule
est





active
Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci




















Avatar
JYZ
J'ai beau essayé je n'arrive pas.
Je veux bien recevoir un classeur
Mon adresse est : (enlever nospam)


merci beaucoup
Cordialement
Jacky



"Papou" a écrit dans le message de
news:
Re
Tout ce que je t'ai envoyé doit être placé tel quel dans l'ordre dans un
module *sans rien au-dessus*, sinon tu auras effectivement un plantage.
Je l'ai testé personnellement au boulot et ça fonctionne bien (Excel 2003
WinXP Pro)
Il faut également (et surtout) veiller aux sauts de lignes intempestifs (à
mon avis c'est plus certainement ton problème)
Donc pour y voir plus clair :
'Ligne 1
Const VK_CAPITAL = &H14
'Ligne 2
Private Type KeyboardBytes
'Ligne 3
kbByte(0 To 255) As Byte
'Ligne 4
End Type
'Ligne 5
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
'Ligne 6
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 7
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 8
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'Ligne 9
Sub DesactiveMAJ()
'Ligne 10
GetKeyboardState KbOld
'Ligne 11
TurnOff VK_CAPITAL
'Ligne 12
End Sub
'Ligne 13
Sub ActiveMAJ()
'Ligne 14
GetKeyboardState KbOld
'Ligne 15
TurnOn VK_CAPITAL
'Ligne 16
End Sub
'Ligne 17
Private Sub TurnOff(vkKey As Long)
'Ligne 18
GetKeyboardState kbArray
'Ligne 19
kbArray.kbByte(vkKey) = 0
'Ligne 20
SetKeyboardState kbArray
'Ligne 21
End Sub
'Ligne 22
Private Sub TurnOn(vkKey As Long)
'Ligne 23
GetKeyboardState kbArray
'Ligne 24
kbArray.kbByte(vkKey) = 1
'Ligne 25
SetKeyboardState kbArray
'Ligne 26
End Sub

Ouf :-))

PS si ça ne marche toujours pas je t'envoie un classeur avec le code bien
placé si tu veux.
Cordialement
Pascal


"JYZ" a écrit dans le message de
news:73xQc.10510$
J'ai tout installé dans un module mais il aime pas et me fait une erreur
sur

l'instructon Private .... kbBytes (0 to 255)

Les 3 Private sont en rouge !!!

Je suis sous 2003 ??

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ (dans
ton


cas)

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:2jpQc.10421$
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message
de




news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long)
As




Integer
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche majuscule
est





active
Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci
























Avatar
papou
Bonjour
C'est parti dans ta bal
Cordialement
Pascal

"JYZ" a écrit dans le message de
news:gDsRc.15057$
J'ai beau essayé je n'arrive pas.
Je veux bien recevoir un classeur
Mon adresse est : (enlever nospam)


merci beaucoup
Cordialement
Jacky



"Papou" a écrit dans le message de
news:
Re
Tout ce que je t'ai envoyé doit être placé tel quel dans l'ordre dans un
module *sans rien au-dessus*, sinon tu auras effectivement un plantage.
Je l'ai testé personnellement au boulot et ça fonctionne bien (Excel
2003


WinXP Pro)
Il faut également (et surtout) veiller aux sauts de lignes intempestifs



mon avis c'est plus certainement ton problème)
Donc pour y voir plus clair :
'Ligne 1
Const VK_CAPITAL = &H14
'Ligne 2
Private Type KeyboardBytes
'Ligne 3
kbByte(0 To 255) As Byte
'Ligne 4
End Type
'Ligne 5
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
'Ligne 6
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 7
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 8
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'Ligne 9
Sub DesactiveMAJ()
'Ligne 10
GetKeyboardState KbOld
'Ligne 11
TurnOff VK_CAPITAL
'Ligne 12
End Sub
'Ligne 13
Sub ActiveMAJ()
'Ligne 14
GetKeyboardState KbOld
'Ligne 15
TurnOn VK_CAPITAL
'Ligne 16
End Sub
'Ligne 17
Private Sub TurnOff(vkKey As Long)
'Ligne 18
GetKeyboardState kbArray
'Ligne 19
kbArray.kbByte(vkKey) = 0
'Ligne 20
SetKeyboardState kbArray
'Ligne 21
End Sub
'Ligne 22
Private Sub TurnOn(vkKey As Long)
'Ligne 23
GetKeyboardState kbArray
'Ligne 24
kbArray.kbByte(vkKey) = 1
'Ligne 25
SetKeyboardState kbArray
'Ligne 26
End Sub

Ouf :-))

PS si ça ne marche toujours pas je t'envoie un classeur avec le code
bien


placé si tu veux.
Cordialement
Pascal


"JYZ" a écrit dans le message de
news:73xQc.10510$
J'ai tout installé dans un module mais il aime pas et me fait une
erreur



sur
l'instructon Private .... kbBytes (0 to 255)

Les 3 Private sont en rouge !!!

Je suis sous 2003 ??

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message de
news:
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ
(dans




ton
cas)

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:2jpQc.10421$
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le
message





de
news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As
Long)






As
Integer
Private Declare Function GetKeyboardState Lib "user32" (kbArray
As






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






KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche
majuscule







est
active
Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci




























Avatar
JYZ
Bonjour
Merci pour le fichier.
Je viens d'essayer et j'ai le meme defaut
au lancement du fichier j'ai dans une boite
Erreur de compilation
Attendu : fin d'instruction

les 3 lignes Private sont en rouge et kbByte est surligné

Merci pour ton aide


"papou" <cestpasbonprobin@çanonpluscg44_fr> a écrit dans le message de
news:
Bonjour
C'est parti dans ta bal
Cordialement
Pascal

"JYZ" a écrit dans le message de
news:gDsRc.15057$
J'ai beau essayé je n'arrive pas.
Je veux bien recevoir un classeur
Mon adresse est : (enlever nospam)


merci beaucoup
Cordialement
Jacky



"Papou" a écrit dans le message de
news:
Re
Tout ce que je t'ai envoyé doit être placé tel quel dans l'ordre dans
un



module *sans rien au-dessus*, sinon tu auras effectivement un
plantage.



Je l'ai testé personnellement au boulot et ça fonctionne bien (Excel
2003


WinXP Pro)
Il faut également (et surtout) veiller aux sauts de lignes
intempestifs




mon avis c'est plus certainement ton problème)
Donc pour y voir plus clair :
'Ligne 1
Const VK_CAPITAL = &H14
'Ligne 2
Private Type KeyboardBytes
'Ligne 3
kbByte(0 To 255) As Byte
'Ligne 4
End Type
'Ligne 5
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
'Ligne 6
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 7
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 8
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'Ligne 9
Sub DesactiveMAJ()
'Ligne 10
GetKeyboardState KbOld
'Ligne 11
TurnOff VK_CAPITAL
'Ligne 12
End Sub
'Ligne 13
Sub ActiveMAJ()
'Ligne 14
GetKeyboardState KbOld
'Ligne 15
TurnOn VK_CAPITAL
'Ligne 16
End Sub
'Ligne 17
Private Sub TurnOff(vkKey As Long)
'Ligne 18
GetKeyboardState kbArray
'Ligne 19
kbArray.kbByte(vkKey) = 0
'Ligne 20
SetKeyboardState kbArray
'Ligne 21
End Sub
'Ligne 22
Private Sub TurnOn(vkKey As Long)
'Ligne 23
GetKeyboardState kbArray
'Ligne 24
kbArray.kbByte(vkKey) = 1
'Ligne 25
SetKeyboardState kbArray
'Ligne 26
End Sub

Ouf :-))

PS si ça ne marche toujours pas je t'envoie un classeur avec le code
bien


placé si tu veux.
Cordialement
Pascal


"JYZ" a écrit dans le message de
news:73xQc.10510$
J'ai tout installé dans un module mais il aime pas et me fait une
erreur



sur
l'instructon Private .... kbBytes (0 to 255)

Les 3 Private sont en rouge !!!

Je suis sous 2003 ??

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le message
de




news:
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ
(dans




ton
cas)

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:2jpQc.10421$
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le
message





de
news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As
Long)






As
Integer
Private Declare Function GetKeyboardState Lib "user32"
(kbArray







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







As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche
majuscule







est
active
Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci
































Avatar
papou
Re
Quelle est ta version d'Excel ?
Sinon si les lignes sont bien entières (tel que je te les avaient numérotées
dans mon post précédent), alors là je suis navré mais j'avoue qu'il s'agit
d'un mystère pour ce qui me concerne :-((
Si quelqu'un d'autre a eu une idée ?

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:NnFRc.15114$
Bonjour
Merci pour le fichier.
Je viens d'essayer et j'ai le meme defaut
au lancement du fichier j'ai dans une boite
Erreur de compilation
Attendu : fin d'instruction

les 3 lignes Private sont en rouge et kbByte est surligné

Merci pour ton aide


"papou" <cestpasbonprobin@çanonpluscg44_fr> a écrit dans le message de
news:
Bonjour
C'est parti dans ta bal
Cordialement
Pascal

"JYZ" a écrit dans le message de
news:gDsRc.15057$
J'ai beau essayé je n'arrive pas.
Je veux bien recevoir un classeur
Mon adresse est : (enlever nospam)


merci beaucoup
Cordialement
Jacky



"Papou" a écrit dans le message de
news:
Re
Tout ce que je t'ai envoyé doit être placé tel quel dans l'ordre
dans




un
module *sans rien au-dessus*, sinon tu auras effectivement un
plantage.



Je l'ai testé personnellement au boulot et ça fonctionne bien (Excel
2003


WinXP Pro)
Il faut également (et surtout) veiller aux sauts de lignes
intempestifs




mon avis c'est plus certainement ton problème)
Donc pour y voir plus clair :
'Ligne 1
Const VK_CAPITAL = &H14
'Ligne 2
Private Type KeyboardBytes
'Ligne 3
kbByte(0 To 255) As Byte
'Ligne 4
End Type
'Ligne 5
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long)
As




Integer
'Ligne 6
Private Declare Function GetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 7
Private Declare Function SetKeyboardState Lib "user32" (kbArray As
KeyboardBytes) As Long
'Ligne 8
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
'Ligne 9
Sub DesactiveMAJ()
'Ligne 10
GetKeyboardState KbOld
'Ligne 11
TurnOff VK_CAPITAL
'Ligne 12
End Sub
'Ligne 13
Sub ActiveMAJ()
'Ligne 14
GetKeyboardState KbOld
'Ligne 15
TurnOn VK_CAPITAL
'Ligne 16
End Sub
'Ligne 17
Private Sub TurnOff(vkKey As Long)
'Ligne 18
GetKeyboardState kbArray
'Ligne 19
kbArray.kbByte(vkKey) = 0
'Ligne 20
SetKeyboardState kbArray
'Ligne 21
End Sub
'Ligne 22
Private Sub TurnOn(vkKey As Long)
'Ligne 23
GetKeyboardState kbArray
'Ligne 24
kbArray.kbByte(vkKey) = 1
'Ligne 25
SetKeyboardState kbArray
'Ligne 26
End Sub

Ouf :-))

PS si ça ne marche toujours pas je t'envoie un classeur avec le code
bien


placé si tu veux.
Cordialement
Pascal


"JYZ" a écrit dans le message de
news:73xQc.10510$
J'ai tout installé dans un module mais il aime pas et me fait une
erreur



sur
l'instructon Private .... kbBytes (0 to 255)

Les 3 Private sont en rouge !!!

Je suis sous 2003 ??

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le
message





de
news:
Oups là ! pas de panique > les API rendent heureux ;-)
Copier et coller dans un module et tester la macro DesactiveMAJ
(dans




ton
cas)

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:2jpQc.10421$
Ouh la !!!
J'installe cela comment
API pas connaître .....
Merci quand meme

"papou" <cestpasbonprobin@çanonpluscg44.fr> a écrit dans le
message





de
news:
Bonjour
Avec des fonctions API c'est possible apparamment :
Const VK_CAPITAL = &H14
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As
Long)






As
Integer
Private Declare Function GetKeyboardState Lib "user32"
(kbArray







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







As
KeyboardBytes) As Long
Dim kbArray As KeyboardBytes, KbOld As KeyboardBytes
Sub DesactiveMAJ()
GetKeyboardState KbOld
TurnOff VK_CAPITAL
End Sub
Sub ActiveMAJ()
GetKeyboardState KbOld
TurnOn VK_CAPITAL
End Sub
Private Sub TurnOff(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 0
SetKeyboardState kbArray
End Sub
Private Sub TurnOn(vkKey As Long)
GetKeyboardState kbArray
kbArray.kbByte(vkKey) = 1
SetKeyboardState kbArray
End Sub

Cordialement
Pascal

"JYZ" a écrit dans le message de
news:ItoQc.10401$
Bjr,

Je cherche a faire une macro qui detecte si la touche
majuscule







est
active
Si active la mettre inactif
Si inactive rien

Est ce possible ?
Je ne vois pas comment

Merci




































1 2