Validation Textbox avec touche entrée

SAMWRC

XLDnaute Occasionnel
Bonjour le forum,

J'ai un userform avec une textbox et un commandbutton OK.
Je peux valider ma textbox avec OK, mais je voudrais aussi avoir la possibilité de le faire en appuyant sur la touche Entrée.

J'ai donc essayé le code suivant :

Code:
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then CommandButton1_Click
End Sub

Mais au lieu de valider lors de l'appui sur la touche entrée, ca fait un focus sur le bouton OK.

Quelqu'un a une idée ?

Merci d'avance

Sam
 

Pièces jointes

  • Textbox validation touche entrée.xls
    25.5 KB · Affichages: 440
  • Textbox validation touche entrée.xls
    25.5 KB · Affichages: 505
  • Textbox validation touche entrée.xls
    25.5 KB · Affichages: 546

kllmoon

XLDnaute Occasionnel
Re : Validation Textbox avec touche entrée

Ouvre VB, vas dans userform, clique droit sur ton bouton OK puis propriétés. Ensuite, dans le nouveau menu trouve Default et met la valeur à true. Ça devrait régler ton problème.
 

fhoest

XLDnaute Accro
Re : Validation Textbox avec touche entrée

Bonjour,
il te suffit d'utiliser l'évènement exit de ta textbox.
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox ("OK" & vbCrLf & TextBox1.Text)
End Sub
A+
 

Papou-net

XLDnaute Barbatruc
Re : Validation Textbox avec touche entrée

Bonjour SAMWRC,

Ca ne peut pas fonctionner comme cela car tu appelles l'événement Click de ton bouton, il attend donc que tu cliques dessus.

Tu peux modifier tes macros ainsi pour obtenir ce que tu cherches :

Code:
Private Sub TextBox1_AfterUpdate()
    MsgBox "OK"
End Sub
Private Sub CommandButton1_Click()
    MsgBox "OK"
End Sub

Ou mieux comme ceci :

Code:
Private Sub TextBox1_AfterUpdate()
    Valider
End Sub
Private Sub CommandButton1_Click()
    Valider
End Sub
Sub Valider()
    MsgBox "OK"
End Sub

Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : Validation Textbox avec touche entrée

Mais non ma solution fonctionne parfaitement essayez la avant de vous compliquer la vie!


Bonjour le Forum, kllmoon,

Mais bon Dieu, mais c'est bien sûr !

Pas pu essayer ta solution, je ne l'avais pas vue avant d'envoyer ma réponse.

Merci pour cette combine astucieuse. On m'a toujours dit qu'il fallait apprendre une chose par jour, pour moi c'est fait, donc je vais me coucher.

Cordialement.
 

fhoest

XLDnaute Accro
Re : Validation Textbox avec touche entrée

Bonjour a tous
pas mal la solution du default que je ne connaissait pas non plus,mais dans le cas d'un userform avec plusieurs textbox et plusieurs commande bouton comment utilise-t-on la solution sans le code que papounet et moi-meme avont proposer.
merci de nous faire partager tes nombreux talents...
A bientot.
 

SAMWRC

XLDnaute Occasionnel
Re : Validation Textbox avec touche entrée

Bonjour kllmoon, fhoest et Papou-net !

J'ai testé chacune de vos solutions. Les trois fonctionnent.
Celle de kllmoon est sans doute la plus simple. Mais si je veux aller plus loin, comme avoir plusieurs textbox et plusieurs boutons ok, cette solution tombe a l'eau.

J'ai fait des petits tests et ca a l'air de fonctionner avec les solutions de fhoest et Papou-net. Cependant il s'avere qu'avec la propriété exit proposée par fhoest, lorsque j'appuie sur la touche Exit, cela valide ma textbox, ce que je ne souhaite pas.

En fin de compte, la propriété afterupdate proposée par Papou-net a donc l'air d'etre la plus complete, mais il me vient une question a l'esprit : est-ce que afterupdate peut etre déclenché par l'appui sur une autre touche que Entrée ? Dans l'affirmative, cela pourrait fausser le fonctionnement de mon userform ...

Merci a vous

Edit: fhoest m'a devancé
 

Papou-net

XLDnaute Barbatruc
Re : Validation Textbox avec touche entrée

Bonjour kllmoon, fhoest et Papou-net !

J'ai testé chacune de vos solutions. Les trois fonctionnent.
Celle de kllmoon est sans doute la plus simple. Mais si je veux aller plus loin, comme avoir plusieurs textbox et plusieurs boutons ok, cette solution tombe a l'eau.

J'ai fait des petits tests et ca a l'air de fonctionner avec les solutions de fhoest et Papou-net. Cependant il s'avere qu'avec la propriété exit proposée par fhoest, lorsque j'appuie sur la touche Exit, cela valide ma textbox, ce que je ne souhaite pas.

En fin de compte, la propriété afterupdate proposée par Papou-net a donc l'air d'etre la plus complete, mais il me vient une question a l'esprit : est-ce que afterupdate peut etre déclenché par l'appui sur une autre touche que Entrée ? Dans l'affirmative, cela pourrait fausser le fonctionnement de mon userform ...

Merci a vous

Edit: fhoest m'a devancé

Bonsoir à tous,

Pour répondre à SAMWRC, l"événement AfterUpdate peut être considéré comme équivalent à Exit, à la différence qu'il se produit avant ce dernier.

Cordialement.
 

fhoest

XLDnaute Accro
Re : Validation Textbox avec touche entrée

bonjour a tous
voici un code qui pourrait te convenir si toute fois tu utilise plusieurs textbox et plusieur bouton de commande
l'évènement exit et update ne vérifie pas la touche qui est utiliser pour sortir
par contre ceci oui:
Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then MsgBox "test"
End Sub
voila une autre solution
A bientot.
 

SAMWRC

XLDnaute Occasionnel
Re : Validation Textbox avec touche entrée

Bonjour a tous,

La derniere solution evoquée par fhoest me parait effectivement la meilleure. Je l'avais testée en appelant la commande du clic sur le bouton, ce qui ne marchait pas, mais en utilisant des macros c'est parfait.

Merci bien pour votre aide
 

Magic_Doctor

XLDnaute Barbatruc
Re : Validation Textbox avec touche entrée

Bonsoir,

Je m'immisce dans ce fil.
Je fais apparaître un USF dans lequel je dois écrire un mot de passe. Normalement je valide le mot de passe en cliquant sur le bouton "OK" de l'USF. Je voudrais aussi avoir la possibilité de valider ce mot de passe en appuyant sur la touche clavier "Enter". J'ai, dans le module de feuille, intercalé la routine suivante :
VB:
Private Sub TextBoxMotPasse_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then CommandButton1_Click
End Sub
Rien n'y fait. Mais, en revanche, quand j'appuie 2 fois de suite sur "Enter", là ça marche. Du reste, même sans la routine intercalée ça marche aussi.
Pourrait-on faire en sorte pour que ça fonctionne en appuyant uniquement une seule fois sur "Enter" ?

Merci d'avance pour toute aide.
 

Pièces jointes

  • Mot de Passe Crypté (3).xlsm
    60.6 KB · Affichages: 205

coyotelela

XLDnaute Nouveau
Re : Validation Textbox avec touche entrée

Bonjour,

Pour valider la textbox de mon userform par la touche "enter", j'ai créer un bouton valider qui renvoie à ce que je veux faire.
Je l'ai défini par defaut dans les propriété "Default" mettre "true"

Maintenant lorsque je suis dans ma textbox, lorsque je valide ça fonctionne.
 

Discussions similaires

Statistiques des forums

Discussions
312 234
Messages
2 086 468
Membres
103 226
dernier inscrit
smail12