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 :

Raccourci clavier pour UserForm [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut Raccourci clavier pour UserForm
    Bonjour
    Je cherche à créer des raccourci clavier exemple (Alt +y) pour un UserForm,j'ai fait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub Workbook_Open()
    Application.OnKey "%y", "essai"
    End Sub
    que j'ai mis dans ThisWorbook
    et cela que j'ai mis dans un module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub essai()
    MsgBox " ca marche"
     
    End Sub
    Cela fonctionne très bien pour feuil mais pas pour un UserForm

    En fait ce que je cherche, c'est faire fonctionner cette toupie qui se trouve dans un UserForm ,par un raccourci clavier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub PointRouge_SpinDown()       'PointRouge -1
    If PointRouge.Caption = 0 Then Exit Sub
     PointRouge.Caption = PointRouge.Caption - 1
    End Sub
    Private Sub PointRouge_SpinUp()         'PointRouge +1
       If PointRouge.Caption < 9 Then
       PointRouge.Caption = PointRouge.Caption + 1
       End If
    End Sub
    merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Peut-être comme cela (j'ai supposé que ton userform s'appelle usf et que c'est la touche 'bas' qui est pressée...à adapter donc):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub usf_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
    If KeyCode = vbKeyDown Then Call PointRouge_SpinDown()
     
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut
    Merci Sclarckone
    Je viens d'essayer cela ne fonctionne pas.
    J'ai mis ce code dans le module Thisworbook,je l'ai mis dans le code du formulaire
    j'ai mis un point d'arrêt ,il n'y a jamais de passage par ce point.
    Franc83

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Je le mettrais plutôt dans le module du formulaire, parce que tu n'en as besoin que quand le formulaire s'affiche. D'ailleurs je ne sais pas quelle est la portée d'un évènement d'un userform mais il serait logique qu'elle soit limitée au userform (si un évènement survient au niveau du userform c'est que ce dernier est forcément chargé...).

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour à tous,

    Sclarckone,
    Citation Envoyé par Sclarckone Voir le message
    Peut-être comme cela (j'ai supposé que ton userform s'appelle usf)
    En VBA, les procédures événementielles liées à un userform sont toujours préfixées UserForm_ quel que soit son nom.
    La bonne syntaxe est donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut
    Merci
    Il me semble que c'est du VBA access, je suis dans le forum EXEL ,et j'utilise VBA EXEL 2007, par contre vous avez peu être la solution,
    merci d'avance

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Absolument pas! De toute façon il n'y a pas de VBA Excel et Access. Il y a VBA et des bibliothèques spécifiques à Access, Excel, Word...
    Dans ce cas en plus, les 'userform' appartiennent à la bibliothèque MSForms qui est différente des bibliothèques Access et Excel.

  8. #8
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Citation Envoyé par franc83 Voir le message
    Merci
    Il me semble que c'est du VBA access,
    Sur quels critères ?

    cordialement,

    Didier

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut
    Autant pour moi
    J'ai mis ce code dans le code du formulaire mais cela ne fonctionne pas, j'ai mis un point d'arrêt il n'y a pas de passage par ce point.
    J'ai fait une recherche dans l'aide , la commande keyCode il connait pas .
    merci

  10. #10
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Moi pas bien comprendre style télégraphique

    de plus, formulaire = USF ? formulaire = terme ambigu à proscrire sous Excel, on fait référence à quoi ?

    • les formulaires de feuille Excel
    • le boutons de barre outils "formulaire"
    • les USF appelés formulaires à certains moments en VBA
      Procédure : créer un formulaire utilisateur

      Pour créer une boîte de dialogue personnalisée, vous devez créer un objet UserForm. Pour créer un objet UserForm, cliquez dans le menu Insertion sur UserForm dans Visual Basic Editor.


    Sinon s'il s'agit lors de la sélection d'une cellule de déclencher une série d'instructions dépendantes d'un bouton cliqué parmis un groupe de deux, il faut, par exemple :

    • Utiliser le SelectionChange de la feuille en filtrant les target voulues
    • Alimenter via tes boutons une variable drapeau (Boolean)
    • mettre dans le SelectionChange un select case qui donnera les instructions à suivre selon le boolean.


    cordialement,

    Didier

  11. #11
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    A priori "UserForm_KeyDown" n'est pas exécuté quand il y a des contrôles sur le formulaire. Teste ceci sur un formulaire vierge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
        MsgBox KeyCode
     
    End Sub
    Hervé.

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Citation Envoyé par Theze Voir le message
    A priori "UserForm_KeyDown" n'est pas exécuté quand il y a des contrôles sur le formulaire.
    C'est vrai que je n'y avais pas pensé...ça doit dépendre de quel contrôle a le focus, non? Et du coup l'évènement doit être récupéré par le contrôle qui a le focus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub nom_du_controle_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Une solution peut consister à définir une procédure de portée publique qui gère l'évènement et d'appeler cette procédure depuis chaque contrôle susceptible d'avoir le focus sur l'évènement 'KeyDown'.

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu...!!!
    bonjour

    oui effectivement le problème c'est que tu n'a pas forcement le focus sur le userform mais sur un des contrôles de l'userform

    la solution c'est mettre la collection des contrôles y compris le userform dans une classe gérant les évènement

    je me suis servi d'une chose similaire dans ma dernière version de l'effet mouse in et out dans les contributions tu pourrais te servir de cette classe
    pour élaborer la tienne

    regarde dans ma signature en bas de mon message tu a le lien


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut
    Merci Patricktoulon

    Je vais regarder tout ça

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Par défaut
    J'ai des progrès à faire c'est pas de mon niveau ,mais je vais m'y atteler.
    je fermerai la discutions un peu plus tard si quelqu'un veux ajouter un commentaire .

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

Discussions similaires

  1. utilisation des raccourcis claviers pour debugger.
    Par Mobistar dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 30/05/2007, 15h39
  2. raccourcis clavier pour JMenuItem
    Par Jmakolish dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 19/06/2006, 13h44
  3. Raccourci clavier pour liste déroulante
    Par enguerran dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 17/05/2006, 04h53
  4. [eclipse 3.0.1]Raccourci clavier pour changer de fichier
    Par partyboy dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/11/2004, 15h06
  5. [] Raccourci clavier pour bouton d'une barre d'outil
    Par Sébastien dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/03/2003, 17h02

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