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 :

application.onkey dans userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut application.onkey dans userform
    Bonsoir à tous,

    Je suis en train de coder un programme, lors de l'ouverture du classeur j'ai une procédure que je peux appeler avec la combinaison de touches CTRL+MAJ+PGDN ce qui donne :

    dans le code du module thisWorkBook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnKey "^+{PGDN}", "maProcedure"
    Le problême est le suivant, une fois une userform affichée je ne peux plus appeler ma procédure alors que je souhaite pouvoir lui faire appel n'importe quand à partir du moment ou ma macro est en cours d'éxecution.

    J'ai regardé divers post à ce sujet mais je ne comprends pas tout, apparament ça serait lier au "focus".

    Si quelqu'un peut me venir en aide, un grand merci à lui et à tous ceux qui on pris le temps de me lire.

  2. #2
    Membre confirmé
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Par défaut RE
    Bonsoir,

    Vu ton sujet, je pense à Showmodal=false à modifier dans la ou les proprietées de chaque Userform de façon à avoir la main sur l'ensemble des éléments du classeur.

    Regardes dans VB:
    Propriétés de l'UserForm==> catégorie==>Comportement==>Showmodal=false

    A+

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut
    Bonsoir à lenovo49,

    J'ai fais un essai en passant la propriété "showmodal" de la userform à false mais ça ne change rien à mon problême malheureusement.

    Je suis en train de faire d'autres tentatives du coté de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub userform_keypress
    Toutes suggestions et aides sont les bienvenues.

    Bonne soirée a tous, cordialement.

  4. #4
    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...!!!
    BONSOIR
    dans cet exemple si tu tape o ou O majuscule tu aura le message
    mais atention il faut que le userform aie le focus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Chr(KeyAscii) = "o" Or Chr(KeyAscii) = "O" Then
     
    MsgBox "tu a taper o ou O pour dire oui"
    End If
    End Sub

    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

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut
    Bonsoir patricktoulon,

    Merci de m'avoir répondu.

    Pour moi l'exemple de code proposer correspond tout à fait pour ce que je cherche à faire.
    Cependant j'ai copié le code exemple que tu as posté dans le code de la userform et j'ai défini les propriétés suivantes :
    - Enabled = true
    - Showmodal = true (si je passe a false comme conseillé par lenovo49, la suite de ma macro est lue sans tenir compte de l'arrêt donné par la userform et ce n'est pas ce que je veux)

    Mais quand j'appuie sur la touche "o" ou "O", il ne se passe rien !

    Tu as écris : "mais atention il faut que le userform aie le focus".
    Pour moi le userform a le focus puisque je ne peux rien faire d'autre que d'intervenir sur la fenêtre mais comment en être sur?

    Merci et bonne soirée

  6. #6
    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 re
    bonjour

    je crois que tu confond mode modal et le focus sur un object

    je suppose que tu a d'autre controls dans ce userform

    il faudrais donc que tu mette a chaque "private ton control_click()"

    juste avant le "end sub"
    me.setfocus
    ca te donnerais le focus dès que l'action du control est terminé

    j'espère avoir été plus clair
    mais ca reste un peu difficile comme ca sans avoir vu le fichier de t'en dire plus


    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

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut
    bonjour lenovo49 et patricktoulon,

    Merci à vous deux pour vos réponses grâce à elles j'ai trouvé la solution à mon problème, il faut que je modifie le fonctionnement de mon code mais sinon ça fonctionne!

    Merci encore à vous deux pour vos conseils qui m'ont bien aidé.

    Je vous souhaite une bonne journée.

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

Discussions similaires

  1. Utiliser Application.Ontime dans un userform
    Par escalopepane dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/10/2013, 12h53
  2. saisie de données dans userform / creation d'application
    Par stifler78 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/05/2008, 12h06
  3. (VBA-E) Problème combobox dans userform
    Par gringo69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2006, 18h28
  4. [VB.net]Gérer un Application.Exit() dans une fonction
    Par arnolem dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/05/2006, 14h03
  5. Application.Terminate dans le OnCreate d'une form ?
    Par isachat666 dans le forum Langage
    Réponses: 6
    Dernier message: 13/04/2006, 13h45

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