Raccourci avec la touche CTRL et une lettre dans un Userform

Bivouac72 Messages postés 2 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 21 mai 2010 - 21 mai 2010 à 14:26
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 - 23 mai 2010 à 18:27
Bonjour à tous

J'aimerais pouvoir créer un raccourci avec la touche Ctrl et une lettre sur un Userform
J'y arrive sur une feuille mais pas sur l'userform quand il est est actif

J'utilise Excel 2003

D'avance Merci

6 réponses

Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
21 mai 2010 à 15:15
Tu peux toujours créer une macro avec un raccourci avec l'outil "enregistrer une macro" dans la barre "Visual Basic" est dedans tu met :

Sub Macro1()
'Macro crée BLABLA
'raccourci CTRL+E

Usf.Show
End Sub




------------
Même joueur joue encore
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2010 à 15:24
Salut
D'après ce que j'ai vu, UserForm_KeyDown ne fournit pas d'info sur la touche Control (contrairement à VB6).
Tu peux contourner la chose avec cette petite routine :

A mettre dans la partie déclaration d'un module :
Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
Private Const VK_SHIFT   As Long = &H10
Private Const VK_CONTROL As Long = &H11

A mettre dans le module :
Public Function ToucheControlEnfoncée() As Boolean
    If GetKeyState(VK_CONTROL) = -127 Or _
       GetKeyState(VK_CONTROL) = -128 Then
            ToucheControlEnfoncée = True
    Else
            ToucheControlEnfoncée = False
    End If
End Function

Utilisation pour le test de Ctrl-E :
if KeyCode = KeyCodeConstants.vbKeyE And ToucheControlEnfoncée Then

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2010 à 15:25
Au fait, que comptes-tu faire de ces racourcis ?
Est-ce que tu veux les lier à un objet ?
Parce que la solution serait bien différente ...
0
Bivouac72 Messages postés 2 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 21 mai 2010
21 mai 2010 à 18:51
Désolé Jack, mais ça ne fonctionne pas

Je voudrais déclencher sur l'userform:
un bouton avec Alt + a (ça c'est facile)
et un autre bouton avec Ctrl + a

J'ai fait plein d'essais avec onkey, keydown, keypress, etc mais sans succès

Si tu as la solution je t'en serais reconnaissant

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
23 mai 2010 à 18:24
C'est simple, tu mets...
'On intercepte les évènements clavier pour les raccourci CTRL + x
        Me.KeyPreview = True


dans "Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load".

Et tu mets...
 Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        'Si la touche contrôle est enfoncée ainsi que la touche A ...
        If e.Control True And e.KeyCode Keys.A Then
            'affichage du formulaire
            Form4.Show()
        End If
    End Sub
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
23 mai 2010 à 18:27
Désolé, j'avais pas vu que tu utilisais Excel 2003
0
Rejoignez-nous