commande par bouton + touche

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
 

deudecos

XLDnaute Impliqué
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

  • Flamel.zip
    10.1 KB · Affichages: 22
F

flamel

Guest
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
 

Bricofire

XLDnaute Impliqué
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

  • DGKey.zip
    8 KB · Affichages: 15

excalibur

XLDnaute Impliqué
bonjour deudecos flamel Bricofire une autre facon de voir le pb c est pas super mais si ca peut aider salutations [file name=essai_20051002102115.zip size=10522]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/essai_20051002102115.zip[/file]
 

Pièces jointes

  • essai_20051002102115.zip
    10.3 KB · Affichages: 12

Bricofire

XLDnaute Impliqué
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

  • DGKey2.zip
    15.9 KB · Affichages: 19

Discussions similaires