Textbox - Validation entrée - Focus saisie

SAMWRC

XLDnaute Occasionnel
Bonjour a tous,

Je suis en train de créer un userform de sélection de données et je suis confronté a plusieurs problemes que je n'arrive pas a résoudre ...

Je vous joint en PJ le programme.
Pour faire simple lorsqu'on ouvre le userform, on peut utiliser le textbox pour rentrer des valeurs qui alimentent la listbox en appuyant sur entrée ou en cliquant sur OK.
Etant donné que l'on attend de l'utilisateur qu'il rentre plusieurs valeurs, je souhaite que le focus soit redonné a la textbox apres la validation de la valeur précédente.

J'ai réussi a prendre en compte l'appui sur la touche entrée grace a ce fil du forum :
https://www.excel-downloads.com/threads/validation-textbox-avec-touche-entree.139756/

J'ai également réussi a redonner le focus a la textbox avec le fil suivant :
Lien supprimé


Cependant, un certain nombre d'effets secondaires viennent poluer le fonctionnement de mon userform :
- je ne peux plus valider en utilisant le bouton OK,
- la valeur par défaut (définie a l'ouverture du userform) apparait a chaque fois que je valide en utilisant entrée alors que je voudrais que la textbox soit vide apres validation,
- je peux cliquer sur le bouton Exit, mais cela entraine une RAZ de ma textbox avant de pouvoir cliquer a nouveau sur exit et de sortir du userform.

J'ai beau cherché, je n'ai pas toujours pas réussi a fixer mes différents problemes ... Je fais donc appel a vous.

Merci d'avance

Sam
 

Pièces jointes

  • Textbox validation touche entrée.xls
    31.5 KB · Affichages: 128
  • Textbox validation touche entrée.xls
    31.5 KB · Affichages: 132
  • Textbox validation touche entrée.xls
    31.5 KB · Affichages: 142

SAMWRC

XLDnaute Occasionnel
Re : Textbox - Validation entrée - Focus saisie

Salut Bruno,

Ca m'a l'air de répondre parfaitement a mes besoins.

Par contre je ne saisis pas trop pourquoi tu simules un appui sur la touche entrée (SendKeys "{ENTER}") dans la fonction add item.
J'ai bien constaté que si je supprime cette ligne, le focus ne marche plus. Mais pour ma culture perso, j'aimerais bien comprendre pourquoi TextBox1.SetFocus ne marche pas directement et pourquoi on doit rappeler cette commande par l'astuce du SendKeys "{ENTER}".

Merci pour ton aide

Sam
 

youky(BJ)

XLDnaute Barbatruc
Re : Textbox - Validation entrée - Focus saisie

re,
Pas évident, je pense que l'on perds le focus lors du Additems.
Le SetFocus ne marche plus car pour excel on est déja dans le textbox1, donc j'ai essayé de l'en faire sortir par un enter et lui redonner le focus, cela à marché.
J'avais essayé aussi ton ECHAP mais il réinitialize le textbox.
A savoir que j'ai fais pas mal d'essais pour aboutir.
Bonne continuation
Bruno
 

SAMWRC

XLDnaute Occasionnel
Re : Textbox - Validation entrée - Focus saisie

Re,

Meme si la solution fonctionnait, le coté un peu artistique me tracassait beaucoup.
Du coup je suis allé fouiner dans les discussions du forum et je suis tombé sur la solution miracle :

Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     If KeyCode = 13 Then
         ListBox1.AddItem TextBox1.Value
         TextBox1 = ""
         [COLOR="Red"]KeyCode = 0[/COLOR]
     End If
End Sub
Private Sub CommandButton1_Click()
    ListBox1.AddItem TextBox1.Value
    TextBox1 = ""
    TextBox1.SetFocus
End Sub

La commande Keycode = 0 annule la sortie du textbox engendrée par l'appui sur la touche entrée.

Cela marche parfaitement, c'est plus clair et plus logique.

++

Sam
 

Discussions similaires

Réponses
2
Affichages
178
Réponses
93
Affichages
2 K
Réponses
19
Affichages
632

Statistiques des forums

Discussions
312 239
Messages
2 086 495
Membres
103 236
dernier inscrit
Menni