Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Modifier Propriétés TextBox par KeyUp/KeyDown

  • Initiateur de la discussion Initiateur de la discussion Jidé
  • 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 !

J

Jidé

Guest
Saisie scores de golf. Une UF Scores avec 18 TextBox (Trou1 à Trou18), index consécutifs (de 0 à 17), MaxLength =1 et AutoTab = True.
Problème pour saisir un score à 2 digits. Idée faire passer MaxLength à 2 en frappant Ctrl puis les 2 chifres. D'ou mon code :

Private Sub Scores_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 17 Then MaxLength = 2 Else
MaxLength = 1
End If
End Sub

Raté. On passe toujours au trou suivant après la saisie du premier chiffre.
 
Re : Modifier Propriétés TextBox par KeyUp/KeyDown

Pas de chance, joue au tennis, en général, c'est sur 6, d'où, pas ce problème

Edit : Tout cela pour te dire qu'il y a un minimum de bienséance (Bonjour, Bonsoir, Merci...)
Et de plus, donner des explications Télégraphiques du style :
- Saisie scores de golf - Stop-
- Une UF Scores avec 18 TextBox - Stop-

Vraiment pas l'idéal pour comprendre ton souci....
 
Dernière édition:
Re : Modifier Propriétés TextBox par KeyUp/KeyDown

bonjour Jidé

Salut bhbh 🙂

@ Jidé

Après avoir jeté un oeil à la charte je te propose de tester:

Code:
Private Sub TextBox1_AfterUpdate()
Me.TextBox1.MaxLength = 1
End Sub
 
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 If KeyCode = 17 Then Me.TextBox1.MaxLength = 2
End Sub
 
Re : Modifier Propriétés TextBox par KeyUp/KeyDown

Bonjour Pierrejean,

Merci pour le code, il fonctionne pour la TextBox1. Mais faut-il que je le duplique pour mes 18 TextBox (mes 18 trous). C'est pas très esthétique, et satisfaisant pour ...l'esprit.
A la lecture de la notice du constructeur, l'événement KeyDown se produit lorsque l'utilisateur appuie sur une touche alors qu'une feuille est en cours d'éxécution ou un contrôle de celle-ci à le focus.
Je pensais donc pouvoir mettre la UF en objet, et pouvoir passer à MaxLength =2 sur le trou qui a le focus, en faisant précéder la saisie par Ctrl.
Mais je n'y arrive pas. Existe-il un mot-clé pour désigner la TextBox qui a le focus ? C'est peut-être là qu'est le problème ?
 
Re : Modifier Propriétés TextBox par KeyUp/KeyDown

Bonsoir pierrejean,

J'ai réussi à placer ActiveControl dans le code :

Private Sub Trou1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 17 Then ActiveControl.MaxLength = 2
End Sub

Cela marche, mais n'améliore en rien la situation. Rien de générique pour les 18 trous.
 
- 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

N
Réponses
8
Affichages
1 K
Nicolaroute
N
E
  • Question Question
Réponses
1
Affichages
880
G
E
Réponses
2
Affichages
3 K
eideal44
E
J
Réponses
0
Affichages
964
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…