Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

associer une touche de controle à un bouton

5 réponses
Avatar
Pierre
bonjour,

J'ai plusieurs boutons command dans un formulaire et je voudrais associer à
chacun d'eux une touche dede contrôle accessible par ctrl + touche.
Est-ce possible ?
Si oui comment ?
merci

5 réponses

Avatar
X
' dans un text1 par exemple:
Sub Text1_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii ' donne la touche <ctrl> + <?>
End Sub


--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Pierre" a écrit dans le message de news:
%230DVqg%
bonjour,

J'ai plusieurs boutons command dans un formulaire et je voudrais associer
à
chacun d'eux une touche dede contrôle accessible par ctrl + touche.
Est-ce possible ?
Si oui comment ?
merci




Avatar
Pierre
Je voudrais que "ctrl a" par exemple simule un clic sur le bouton ajouter du
formulaire quel que soit l'endroit où je me trouve dans le formulaire.

Et quand je fais sub command1_KeyPress (KeyAscii As Integer)
j'obtiens toujours 1 quelle que soit la touche


"X" wrote in message news:uTRwRk%
' dans un text1 par exemple:
Sub Text1_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii ' donne la touche <ctrl> + <?>
End Sub


--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"Pierre" a écrit dans le message de news:
%230DVqg%
> bonjour,
>
> J'ai plusieurs boutons command dans un formulaire et je voudrais


associer
> à
> chacun d'eux une touche dede contrôle accessible par ctrl + touche.
> Est-ce possible ?
> Si oui comment ?
> merci
>
>




Avatar
X
Négatif !

Je viens d'essayer:

Sub Command1_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii
End Sub

C'est "keyAscii" qu'il faut tester, comme dans l'exemple...
Pour que ça marche dans chaque objet y compris sur ta forme, il faut mettre
cette procédure à tous les objets et à ta form (tes form)?
Si ça ne marche pas, vois mon mail plus bas, envoies-moi ton code...
Par contre pour tester tu peux te servir d'une seule procédure, par exemple:
---------------------------

option explicit
dim quel_objet as string
dim quel_code as integer
Sub Command1_KeyPress(KeyAscii As Integer) ' bouton
quel_code = keyascii
quel_objet = "command1"
call teste_procedure
End Sub

Sub Command1_KeyPress(KeyAscii As Integer) ' texte
quel_code = keyascii
quel_objet = "text"
call teste_procedure
End Sub

sub teste_procedure
msgbox "Objet = " & quel_objet & vblf & "Code = " & quel_code
end sub

--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Pierre" a écrit dans le message de news:
OcuNdp%
Je voudrais que "ctrl a" par exemple simule un clic sur le bouton ajouter
du
formulaire quel que soit l'endroit où je me trouve dans le formulaire.

Et quand je fais sub command1_KeyPress (KeyAscii As Integer)
j'obtiens toujours 1 quelle que soit la touche


"X" wrote in message
news:uTRwRk%
' dans un text1 par exemple:
Sub Text1_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii ' donne la touche <ctrl> + <?>
End Sub


--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"Pierre" a écrit dans le message de news:
%230DVqg%
> bonjour,
>
> J'ai plusieurs boutons command dans un formulaire et je voudrais


associer
> à
> chacun d'eux une touche dede contrôle accessible par ctrl + touche.
> Est-ce possible ?
> Si oui comment ?
> merci
>
>








Avatar
Guy DETIENNE
Salut ;O)

Il faut intercepter les touches via le formulaire.
Tout d'abords, mets la propriété KeyPreview du formulaire à True.

Puis colle ceci et le tour est joué... :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyA And Shift = vbCtrlMask Then
MsgBox "Control A"
End If

End Sub

Explication :

Lors de l'événement KeyDown du formulaire, on test la valeur de la touche
appuyée grâce à l'argument KeyCode et éventuellement, dans ce cas précis, si
la touche Ctrl est aussi activée grâce à l'argument Shift.

Shift peut prendre ces 3 valeurs :

vbShiftMask (1) Masque binaire MAJ
VbCtrlMask (2) Masque binaire CTRL
VbAltMask (4) Masque binaire ALT

On peut dès lors détecter via l'opérateur AND si les conditions sont
remplies. Dans ce cas vbKeyA (code 65 de la touche A) et vbCtrlMask (touche
Ctrl) sont simultanément activés.

Voilà...
J'espère que cela t'aidera.

Guy



"Pierre" a écrit dans le message de news:
OcuNdp%
Je voudrais que "ctrl a" par exemple simule un clic sur le bouton ajouter
du
formulaire quel que soit l'endroit où je me trouve dans le formulaire.

Et quand je fais sub command1_KeyPress (KeyAscii As Integer)
j'obtiens toujours 1 quelle que soit la touche


"X" wrote in message
news:uTRwRk%
' dans un text1 par exemple:
Sub Text1_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii ' donne la touche <ctrl> + <?>
End Sub


--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"Pierre" a écrit dans le message de news:
%230DVqg%
> bonjour,
>
> J'ai plusieurs boutons command dans un formulaire et je voudrais


associer
> à
> chacun d'eux une touche dede contrôle accessible par ctrl + touche.
> Est-ce possible ?
> Si oui comment ?
> merci
>
>








Avatar
Guy DETIENNE
Salut ;O)

Cette solution ne peut-être efficace que si le bouton à le focus, procédé
non conforme aux règles standards de fonctionnement d'un formulaire Windows.

Il faut plutôt intercepter les touches via le formulaire et traiter en
conséquence (voir mon post).

Guy


"X" a écrit dans le message de news:
OdDjnp$
Négatif !

Je viens d'essayer:

Sub Command1_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii
End Sub

C'est "keyAscii" qu'il faut tester, comme dans l'exemple...
Pour que ça marche dans chaque objet y compris sur ta forme, il faut
mettre cette procédure à tous les objets et à ta form (tes form)?
Si ça ne marche pas, vois mon mail plus bas, envoies-moi ton code...
Par contre pour tester tu peux te servir d'une seule procédure, par
exemple:
---------------------------

option explicit
dim quel_objet as string
dim quel_code as integer
Sub Command1_KeyPress(KeyAscii As Integer) ' bouton
quel_code = keyascii
quel_objet = "command1"
call teste_procedure
End Sub

Sub Command1_KeyPress(KeyAscii As Integer) ' texte
quel_code = keyascii
quel_objet = "text"
call teste_procedure
End Sub

sub teste_procedure
msgbox "Objet = " & quel_objet & vblf & "Code = " & quel_code
end sub

--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Pierre" a écrit dans le message de news:
OcuNdp%
Je voudrais que "ctrl a" par exemple simule un clic sur le bouton ajouter
du
formulaire quel que soit l'endroit où je me trouve dans le formulaire.

Et quand je fais sub command1_KeyPress (KeyAscii As Integer)
j'obtiens toujours 1 quelle que soit la touche


"X" wrote in message
news:uTRwRk%
' dans un text1 par exemple:
Sub Text1_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii ' donne la touche <ctrl> + <?>
End Sub


--
Site ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site LOGICIELS
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"Pierre" a écrit dans le message de news:
%230DVqg%
> bonjour,
>
> J'ai plusieurs boutons command dans un formulaire et je voudrais


associer
> à
> chacun d'eux une touche dede contrôle accessible par ctrl + touche.
> Est-ce possible ?
> Si oui comment ?
> merci
>
>