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 :

Problème de gestion des accélérateurs associés à des boutons Options [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Problème de gestion des accélérateurs associés à des boutons Options
    Bonjour à toutes et tous,

    J'ai écris un petit test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
    Public rep As Variant
     
    Private Sub OB_Moins_Click()
        rep = MsgBox("Touche - appuyée", vbInformation)
    End Sub
     
    Private Sub OB_Plus_Click()
        rep = MsgBox("Touche + appuyée", vbInformation)
    End Sub
     
    Private Sub OB_Quitter_Click()
        UF_Test.Hide
    End Sub
     
    Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        Select Case LCase(KeyAscii)
            Case "-":
                OB_Moins.Value = True
            Case "+":
                OB_Plus.Value = True
            Case "q":
                OB_Quitter.Value = True
        End Select
    End Sub
    Les tabstop des boutons sont tous à faux, je le précise dès maintenant, les clicks de souris fonctionnent mais les raccourcis claviers associés sont eux inopérant?!
    La userform UF_Test ne porte qu'une frame FR_Action qui inclue 3 boutons option OB_Moins, Ob_Plus et OB_Quitter! Les accélérateur sont bien sur + pour OB_Plus, - pour OB_Moins et q pour Ob_Quitter.

    Si quelqu'un à une idée.
    D'avance merci.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Points : 412
    Points
    412
    Par défaut
    Salut à toi,

    Lors de l'utilisation de tes accélérateurs, tu appuies bien sur ALT en même temps ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut Re: Quentin
    Bonjour Quentin,

    Justement non! Mais y a-t-il une possibilité de réaction au seul appuie des touches prévues?
    De plus l'appuie sur ALT en même temps ne change rien pour la touche + !??...
    Les touches du pavé numérique restent inopérantes!

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    En fait c'est TRES vicieux! Lors de la "construction" du UserForm comme indiqué http://www.netalya.com/fr/vb-2.asp
    IL FAUT IMPERATIVEMENT POSER LA FRAME AVANT LES BOUTONS et ce SANS LES COPIER/COLLER on ne le dira jamais assez!
    Voilou, ça marche avec ALT + accelerator même si le distinguo "+" pavé num. et "+/=" clavier n'est pas résolu.

    Merci Quentin pour ta participation.

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour

    Mets le TabStop de chaque contrôle à Faux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    Private Sub UserForm_Initialize()
     
    Dim cCont As Control
     
        For Each cCont In Me.Controls
     
            cCont.TabStop = False
     
        Next cCont
     
    End Sub
     
    Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
        Select Case Chr(KeyAscii)
            Case "-":
                OB_Moins.Value = True
            Case "+":
                OB_Plus.Value = True
            Case "q"
                OB_Quitter.Value = True
        End Select
     
    End Sub
    Cordialement

    Docmarti.

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

Discussions similaires

  1. Gestion de projet: encodage des heures sur des tâches
    Par Terminator dans le forum Gestion de projet
    Réponses: 2
    Dernier message: 03/02/2015, 11h10
  2. Réponses: 2
    Dernier message: 26/09/2014, 23h56
  3. Associer des informations a des fichiers.
    Par petitcoucou31 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2012, 12h16
  4. Réponses: 2
    Dernier message: 27/10/2009, 10h36
  5. [VBA] Sommes des prix associées à des valeurs
    Par tuta77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/02/2009, 09h18

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