Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Alpha41

XLDnaute Junior
Bonjour à tous,

Je me présente Nicolas 20 ans, en 2ème année de DUT informatique.
Je suis actuellement dans une entreprise en stage.
Je suis chargé de développer des fonctions pour un programme VBA existant sous excel.

Mon problème est le suivant :
Au demarrage du programme, un userform est lancé.
J'ai un bouton pour le fermer et si je le ferme je peux le relancer avec CTRL+W.
De plus cette fenêtre est absorbante, je veux parler du fait qu'on ne peut rien faire d'autre autrement qu'agir sur elle.
Mon problème est que je n'arrive pas à associer à mon Userform un raccourci clavier par exemple CTRL+Q pour le fermer! (autrement qu'avec le bouton prévu à cet effet)
La seule solution que j'ai trouvée et de rendre la fenêtre normale, de cliquer sur une feuille de calcul en arrière plan et d'éxecuter ma macro de fermeture ( NomUserForm.Hide)


Cordialement et merci d'avance
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Bonjour Alpha,

essaie de modifier le code qui lance l'userform comme ceci:

UserForm1.Show (0)
ça te permettra de pouvoir travailler sur la feuille pendant que l'Usf est affiché

à+
Philippe
 

Pierrot93

XLDnaute Barbatruc
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Bonjour,

regarde du coté de "Application.OnKey", mais pourquoi ne pas prévoir un bouton directement sur l'usf....

bon après midi
@+

Edition : bonjour Philippe
 

Alpha41

XLDnaute Junior
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Tout d'abord merci de ta réponse très rapide.

Toute mes excuses je me suis trés trés mal exprimé sur mon problème.
En fait, l'origine du problème n'est pas le fait que la fenêtre restreint le contrôle mais simplement que je ne trouve pas moyen de créer un raccourci clavier CTRL+Q qui la fermerait!

J'ai donc trouvé une alternative ( trés moche ) qui est d'utiliser la même ligne que toi a sa création ( dans une macro launch avec raccourci CTRL+W) puis de créer une maccro close (CTRL+Q) qui ferme l'Usf uniquement quand je ne suis plus sous mon USF.
Or mon problème et que je veux rester sur mon USf et donc ne pas imposer à l'utilisateur le fait de cliquer sur une feuille pour en sortir.

En d'autre terme j'aimerais pouvoir appeler mon bouton close présent sur l'USF avec une combinaison de touche ! Et là ça va faire depuis ce matin 9H que je teste moult solutions avec les OnKey,KeyPress,Sendkey et autres ...

EDIT : Bonjour Pierrot, tu as tout saisis!
Malheureusement j'ai pas réussi à faire fonctionner les OnKey ... Et pour le bouton en fait mon USF génère beaucoup de fichiers et l'user aime bien les contrôler (vérif des valeurs de variables) et "ça lui pète le tronc" le fait de fermer au bouton car il déplace toujours la fenêtre en bas et donc dés qu'il clique pour ajouter un commentaire sur la feuille il grogne ^^
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

En d'autre terme j'aimerais pouvoir appeler mon bouton close présent sur l'USF avec une combinaison de touche ! Et là ça va faire depuis ce matin 9H que je teste moult solutions avec les OnKey,KeyPress,Sendkey et autres ...

ce bouton n'est pas accessible ??
 

Alpha41

XLDnaute Junior
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Je veux trop en dire et je vous embrouille ^^
Ce bouton est bien accessible mais l'user déplace toujours la fenêtre vers le bas de l'écran(pour controler les valeurs sur les feuilles) et donc ça cache le bouton!
C'est pourquoi je veux qu'il puisse fermer l'USF à l'aide d'un raccourci clavier!

EDIT : Si vous voulez voir à quoi ressemble graphiquement l'interface je peux envoyer des captures!
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Re,

regarde ceci, à utiliser dans le module de l'usf :
Code:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 81 And Shift = 2 Then Unload Me
End Sub

bon après midi
@+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Re, Bonjour Pierrot
Ce bouton est bien accessible mais l'user déplace toujours la fenêtre vers le bas de l'écran(pour controler les valeurs sur les feuilles) et donc ça cache le bouton!
C'est pourquoi je veux qu'il puisse fermer l'USF à l'aide d'un raccourci clavier!
on pourrait très bien imaginer qu'un clic sur la feuille puisse faire descendre l'usf dans la partie basse de l'écran, et que l'usf aurait dans sa partie haute un bouton qui lui ferait reprendre sa place centrale sur la feuille

à+
Philippe
 

Alpha41

XLDnaute Junior
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Re,

Je viens d'essayer ça ne marche pas! J'ai consulté un site anglais qui semblait traiter du même sujet l'auteur disait qu'il pouvait sagir d'un problème de focus ( le focus était sur un autre élément de l'USF).
PS j'ai mis ce code dans le code de l'USF et aussi dans le code du module qui contenait la fonction pour le lancer ( sub Launch() UserForm1.Show end sub)

EDIT pour Laurent : C'est une solution mais tu sais l'user me la demandé avec raccourci j'ai pas envie de le contrarier alors que c'est juste mon 2ème jour dans l'entreprise :p
 

Alpha41

XLDnaute Junior
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Re,

J'ai bien peur que mon pauvre niveau en VBA me fasse défaut sur ce coup la! Ya tellement de fonction la dedans ( 400 lignes de codes) que je ne sais même pas laquelle pourrait interférer sur le focus!
N'y-a-t-il pas moyen de remettre le focus sur le Userform ?
 

Pierrot93

XLDnaute Barbatruc
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Re,

un exemple en pièce jointe, CTRL q ferme l'usf...
 

Pièces jointes

  • classeur2.xls
    35 KB · Affichages: 97
  • classeur2.xls
    35 KB · Affichages: 103
  • classeur2.xls
    35 KB · Affichages: 111

Alpha41

XLDnaute Junior
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Super!

Bon ça marche toujours pas mais je suis dans le bon chemin avec le problème de focus!
Dans ton exemple j'ai viré le code de fermeture de l'usf de la textbox 1 et ça ne marche plus!!
 

Pierrot93

XLDnaute Barbatruc
Re : Besoin d'aide pour executer du code à l'aide d'un raccourci clavier

Re,

Dans ton exemple j'ai viré le code de fermeture de l'usf de la textbox 1 et ça ne marche plus!!

oui normal si la textbox à le focus.... mais comme dit précédemment :
mets ce code également sur les controles de l'usf susceptibles de recevoir le focus
sinon regarde peut être du coté des API windows...
 

Discussions similaires

Réponses
1
Affichages
119

Statistiques des forums

Discussions
312 371
Messages
2 087 711
Membres
103 648
dernier inscrit
mehdi kaddaf