IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fermer UserForm en appuyant sur une touche


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut Fermer UserForm en appuyant sur une touche
    Bonjour,

    je souhaiterai permettre à l'utilisateur de fermer les boites de dialogues à l'aide de raccourcis clavier plutôt qu'à la souris. Un sujet similaire à été posté, mais je n'arrive pas à faire fonctionner la solution proposée. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
    If (KeyCode = vbKeyEscape) Then
        MsgBox ("Fermeture du formulaire")
        Call fermer
    End If
     
    End Sub
     
    Public Sub fermer()
        unload Me
    End Sub
    Ce code est placé dans la partie code d'un UserForm. Une fois l'userform affiché, il ne se ferme pas lorsque l'on appuie sur la touche échappe. La message box n'apparaît pas non plus. Avez-vous une idée ?

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Pense à mettre à True la propriété KeyPreview de ta UserForm.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut
    Bonjour ucfoutu,

    j'ai regardé, il n'existe pas de propriété KeyPreview dans mon userform (je travaille sous Excel/VBA). Et même en imposant KeyPreview =True ça ne fonctionne toujours pas. D'ailleurs, l'aide d'Excel indique mot clé introuvable sur Keypreview. (Office 2003)

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    pas de keypreview ?
    Ah ce coquin de VBA ...

    Puisque c'est ainsi, on va se montrer encore plus coquin que lui (cà lui servira de leçon... ) :

    ajoute sur ton userform un bouton de commande et donne-lui le nom monkiki ... et ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_Initialize()
       With monkiki
         .Cancel = True
         .Move Me.Width, Me.Height, 1, 1
       End With
    End Sub
     
    Private Sub monkiki_Click()
     msgbox "allez ! on ferme boutique..."
     Unload Me
    End Sub

    presse la touche escape ...
    tu dis ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut
    Est-ce que celà marche si j'ai plusieurs objets dans mon user form ou ça marche parce que le boutton "monkiki" est actif ? En ce qui me concerne j'ai beaucoup d'objets sur ma feuille, et l'utilisateur peut se déplacer entre les bouttons avec des tabulations.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Hé !

    Essaye donc, hein ===>> et tu le sauras très vite !!!

    EDIT : et si tu ne veux pas que la tabulation y parvienne, à ce bouton .... t'as pas une petite idée, non ? (Tapstop à false, chépamoa ...)....

  7. #7
    Membre expérimenté Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 19
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Par défaut
    Bravo ucfoutu pour ce tour de passe passe ! SI tu veux bien prendre quelques minutes pour m'expliquer ce Me je suis preneur car avec l'aide VBA et l'espion du débogeur je ne comprends pas ce que c'est que ce Me...

    Meuuuh....

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut
    Salut ucfoutu, effectivement ça marche : merci bien.

    Mais (car il y a un "mais") la touche échappe était un exemple, et si je souhaitais que ce soit la touche "B" par exemple ? En fait je souhaiterai que l'utilisateur puisse utiliser d'autres touches pour effectuer d'autres actions.

    Dans l'idéal j'aimerai pouvoir définir quelles touches ont un effet sur ... la fermeture par exemple.

    En fait, ça ne résoud pas vraiment mon problème, ça le contourne. J'aimerai comprendre pourquoi ma procédure de détection de la touche "échappe" ne fonctionne pas sur mon userform alors qu'elle fonctionne sur un userform vide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Arrêter une temporisation en appuyant sur une touche
    Par Climoo dans le forum x86 16-bits
    Réponses: 4
    Dernier message: 10/01/2008, 15h35
  2. Réponses: 12
    Dernier message: 25/08/2006, 13h44
  3. Activer un bouton en appuyant sur une touche du clavier
    Par brasco06 dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 16/02/2006, 23h47
  4. Changer de texture en appuyant sur une touche
    Par Hyoga dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/01/2005, 23h36
  5. Réponses: 15
    Dernier message: 28/01/2005, 04h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo