commande par bouton + touche

  • Initiateur de la discussion Initiateur de la discussion flamel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

flamel

Guest
Bonjour.

Je suis en VBA.
Comment faire pour que la commande par click sur un bouton soit active seulement si une touche donnée est enfoncée et soit inactive dans le cas contraire.

Merci de me dépanner.

Flamel
 
Bonjour Flamel, le forum,

A priori, avec un bouton bascule, cela devrait etre faisable, mais il serait bon que tu nous donne quelques precisions supplementaires, voire meme un fichier joint d'exemple de ce que tu recherche...

Mais pour te donner l'eau a la bouche... 🙂

Vois le fichier joint.

Bonne journee

Olivier [file name=Flamel.zip size=10357]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Flamel.zip[/file]
 

Pièces jointes

Merci Deudecos.

Voici ce que je cherche :

Dans un userform, si on clique sur un bouton, il ne se passe rien.
Par contre si on clique en maitenant une touche déterminée enfoncée, telle que Alt ou Maj ou Alt, ou autre, la commande s'exécute.
Il faut donc que l'utilisateur soit au courant de cette sorte de verrou.

Merci si tu peux m'aider.

flamel
 
Bonjour flamel, deudecos, 🙂

Bon flamel, en l'état actuel de mes connaissances, ton truc est bien plus compliqué que ce qu'il paraît, l'objet bouton est pas vraiment construit pour que ce soit simple. J'ai fait un truc que je ne joint pas car c'est complexe, il faut un USF non modal pour pouvoir employer une méthode OnKey sur la feuille, l'action du bouton n'étant validée que si une variable est passée du coup à True.... Suivant le contexte de l'appli, ça peut avoir pas mal de conséquences (USF non modal et Attribution OnKey à rétablir éventuellemment).

J'ai donc imaginé sinon un Barbatruc avec une case TextBox, détournée de sa fonction et qui réagit que si tu entre une frappe du signe '%'.
Ca devrait (en adaptant) te permettre de faire ce que tu veux sans risque...


Option Explicit

Private Sub TextBox1_Change()
'MsgBox (TextBox1.Value) ' pour suivi facile si chgt valeur
If TextBox1.Value = '%' Then
Call Vasy
TextBox1.Value = ''
Else
TextBox1.Value = ''
End If
End Sub

Sub Vasy()
Range('B5').Interior.ColorIndex = 6
End Sub



Bon WE,
Bfr
[file name=DGKey.zip size=8158]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/DGKey.zip[/file]
 

Pièces jointes

Bonjour à tous, 🙂

Bon une autre piste plus proche avec un USF modal et quelquechose très proche de ce que tu paraît vouloir....
Mais les connaissances à avoir en vba sont infinies lol et hier dans mes essais je me suis fait pièger par un truc bête entre les différents évènements clavier...
Si tu prends KeyDown, tu as KeyCode en variable et A retourne 65 que tu sois en Maj ou Min
Si tu prends KeyPress, tu as KeyAscii en variable et là tu as, logiquement pour de l'ascii 65 pour A et 97 pour a !
Du coup mon truc ne marchait pas et je partais dans une usine à gaz 🙂

Donc là en version 2 tu as toujours l'ancien code, mais le lancement du USF1 est désactivé dans le Workbook.

Le USF2 se lance avec le bouton Show USF2 sur la feuille, j'ai mis 3 boutons ce qui permet de ne pas avoir le focus par départ sur le bouton Hop car il est forcé sur le Cmd1 .

L'appui sur a (pas A), puis le click sur Hop colorient D22 en bleu...


Option Explicit
Dim Blop As Integer

Private Sub CmdB1_Click()

If Blop = 1 Then
Range('D22').Interior.ColorIndex = 8
Blop = 0
End If
End Sub

Private Sub CmdB1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii = 97 Then
Blop = 1
End If
End Sub


Bonne journée,
Bfr [file name=DGKey2.zip size=16305]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/DGKey2.zip[/file]
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
786
Réponses
2
Affichages
102
Réponses
32
Affichages
1 K
Réponses
56
Affichages
3 K
Réponses
5
Affichages
169
Réponses
5
Affichages
481
Retour