VBA - Sélection (Focus) d'un bouton grace au touche F1

Bonjour ,

Voilà , j'ai un userform qui contient 5 bouton nommé de 1 à 5.

j'aimerais que lorsque : j'appuie sur la touche F1 , je sélectionne le bouton 1

j'appuie sur la touche F2 , je sélectionne le bouton 2 ect..

ceci afin d'éviter de cliquer sur le bouton et donc d'utiliser la souris.

Sa parait pourtant simple , mais pas moyen de trouver une solution existante sur le net.

Merci par avance !

bonjour Rsurf, bonjour le forum,

pourquoi ne pas utiliser la propriété [Accelerator] qui te permet de souligner un lettre de la [Caption] du bouton et de l'atteindre avec [ALT]+[la lettre soulignée].

Regarde la pièce jointe :

[Alt]+1 sélectionne le bouton 1

[Alt]+2 sélectionne le bouton 2

[Alt]+3 sélectionne le bouton 3

[Alt]+4 sélectionne le bouton 4

[Alt]+5 sélectionne le bouton 5

31rsurf-v01.xlsm (19.72 Ko)

Merci de ta réponse Thauthème ,

Seulement l'utilisation de la touche "Alt" me parait peut pratique en utilisation intense , de plus les personnes pour qui je développe un petit programme ne sont pas mordu d'informatique donc faut que ce soit le plus facile possible d'utilisation.

Il faudrait qu'une seule touche suffise a sélectionner les boutons,

Donc de préférence les touches F1 - 12 ou alors les chiffres du pad numérique.

mais j'sais pas si c'est possible ...


En fait , le top ce serait de faire comme à la borne a la pompe à essence

"Choisissez votre carburant :

  • Sans plomb 98 : taper [1]
  • Sans plomb 95 : taper [2]
  • Gazole : taper [3] "

pour exemple

Hello,

A adapter

Tu peux faire un select case avec un setfocus

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) = "a" Or Chr(KeyAscii) = "A" Then
MsgBox "tu as tapé a ou A"
End If
End Sub
EngueEngue a écrit :

Hello,

A adapter

Tu peux faire un select case avec un setfocus

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Chr(KeyAscii) = "a" Or Chr(KeyAscii) = "A" Then
MsgBox "tu as tapé a ou A"
End If
End Sub

Merci , merci je t'avoue que je comprend pas bien ce que j'peux faire de ce bout de code ^^

c'est à coller dans un module ou dans mon userform ?

et a quel moment puis-je dire que ma lettre ou mon chiffre taper , fait un focus sur un bouton choisi ?

Pas très débrouillard, dans le module de ton userform.

Par contre si tu as un endroit ou tu dois tapper des chiffres ça va planter, voilà pourquoi la combinaison de touches est toujours demandée pour que les évenements ne soient déclanchés qu'au moment voulu et pas intempestivement.

Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select case  Chr(KeyAscii) 
Case "1"
Sans_plomb_98.setfocus
Case "2"
Sans_plomb_95.setfocus
'...
En select
End Sub

J'ai écrit sa dans mon userform mais rien ne ce passe ...

Private Sub UserForm14_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case Chr(KeyAscii)
    Case "1"
    CommandButton1.SetFocus
    Case "2"
    CommandButton2.SetFocus
     Case "3"
    CommandButton3.SetFocus
    Case "4"
    CommandButton4.SetFocus
     Case "5"
    CommandButton5.SetFocus
  End Select

    End Sub

Bonjour le fil, bonjour le forum,

je confirme. J'avais pensé envoyer cette proposition mais en la testant j'ai le même résulat, à savoir, rien ne se passe... Je n'avais donc pas envoyé.

Messieurs,

En effet c'est bien ce que je craignais, l'evenement Keypress est bypassé par le focus des elements a focuser.

Workaround:

Nous allons préalablement modifier pour tous les controles de l'userform la propriété Tabstop à false.

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case vbKeyF1
CommandButton1.SetFocus
Case vbKeyF2
CommandButton2.SetFocus
'...
End Select
End Sub

Ici toutes les variables keycodes:

http://msdn.microsoft.com/fr-fr/library/0z084th3(v=vs.90).aspx

Bonjour ,

Engue , avec ce code tu arrive donc à présent à sélectionner les boutons avec les touches F1 , F2 ... ?

De plus si je clique sur mes boutons maintenant plus rien ne ce passe

Petite progression aujourd'hui ( fichier joint )

j'ai plus ou moins réussie a faire ce que je voulais.

malheureusement au moindre au clic sur un objet du userform "plante" le code.

une idée ?

18classeur1.xlsm (18.51 Ko)

Bon j'ai trouver tout seul merci le forum !

57classeur1.xlsm (21.54 Ko)
Rechercher des sujets similaires à "vba selection focus bouton touche"