Re: Format textbox pour HEURE
Bonsoir Yanne, le Forum, Lien supprimé
J'ai reçcu un message en BAL de Yanne :
____________________________________________________________
-----Message d'origine-----
De : Yanne
Envoyé : jeudi 3 juin 2004 18:52
À : @+Thierry
Objet : Réf. : Re: Format txtbox [1:93060:93063]
merci thierry
seulement je ne comprend pas bien les case utilisés. Le premier ça va mais après je comprend plus
Yanne
____________________________________________________________
Donc comme il paraît qu'il y a lacune de pour une démarche éducative, je vais t'expliquer Yanne...
Ici c'est une Forum de Partage de Connaissance, un Forum où quand tu poses ta Question, quelqu'un cherche une réponse pour toi. Parfois il faut que l'on s'y mette à plusieurs, parfois on a diverses solutions, toutes bonnes, parfois on en a des moins bonnes et des meilleures, et on en discute dans le Forum mais sutout pas en BAL (Emails si tu te demandes ce qu'est une BAL).
Pourquoi.....
Et bien parceque c'est un partage de connaissance, ce que je peux te donner comme réponse peut être utilisé par des centaines de gens qui cherchent la même solution au même problème que toi, et la force d'Internet, c'est que peut être je ne serai plus de ce monde, ni toi, ni d'autres, mais ce que nous avons écrit reste et restera longtemps en domaine Publique et Gratuit ouvert à tous et toutes.
Voilà !
Donc si tu veux répondre à ce message tu click sur ce lien :
http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=93063&t=93060
Et pas sur le bouton "Répondre" de ta messagerie.
Donc maintenant j'en viens à ta question :
Un Select Case permet de "Sélectionner des Cas" jusque là c'est simple.
Quand j'écris :
Select Case Len(TextBox1)
Je veux dire que le "Cas" est le Nombre de Caractère Contenu dans la TextBox... (Len compte le nombre de Digits)
Jusque là c'est simple ou tu m'interromps si tu veux ?
.... Pas d'interruption, donc c'est OK !
Quand j'écris :
Case 2: TextBox1 = TextBox1 = TextBox1 & ":"
Je veux dire que si le "Cas" est égale à 2 alors j'ai Deux Chiffres dans la TextBox et je veux que la TextBox = la TextBox + ":" à la fin ......
Et ainsi de suite....
Là où tu dois être perdue c'est que je passe par une Variable "TheString" de type String (à ton avis pourquoi elle se nomme "TheString" lol) et donc ça te parait plus compliqué mais c'est pareil sauf que c'est plus simple à écrire et à lire...... De plus au lieu que ce soit implicitement calculé au moment de la Compilation, c'est clairement écrit.
Donc quand j'écris :
Case 2: TextBox1 = TheString & ":"
C'est pareil que :
Case 2: TextBox1 = TextBox1 = TextBox1 & ":"
Bien entendu au préalable j'ai déclaré la variable
Dim TheString As String
Et ensuite j'ai initialisé cette variable
TheString = TextBox1
Voilà pour les explications du Select Case....
Maintenant pour que ce code fonctionne il lui faut un évènement qui est celui-ci :
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
C'est l'évènement ideal, car il inter-agit pendant que tu tapes ....
Une petite démo maintenant que tu as tout compris :
Outils Nécessaires :
Dans un Classeur Vierge :
1 UserForm
Dans Ce UserForm
1 TextBox nommée "TextBox1"
1 Command Button Nommé "CommandButton1"
Dans le Private Module de Ce UserForm tu mets ce Code :
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim TheString As String
TheString = TextBox1
Select Case Len(TheString)
Case 2: TextBox1 = TheString & ":"
Case 5: TextBox1 = TheString & ":"
Case 8: CommandButton1.SetFocus 'pour avoir le Focus sur un autre ActiveX
End Select
End Sub
Tu lances ce UserForm.... Tu saisis 2 Chiffres..... Que ce Passe-t'il ?
Et oui les deux ":" s"écrivent tout seuls!...... Encore 2 Chiffres ..... et Hop... Encore 2 et on est sorti de la TextBox....
Et Voilà !!!
Bon Allez Je Te Laisse j'ai Matrix Revolution à Regarder !!! (mais n'hésite pas à revenir dans le Forum si tu as un Problème)
Bonne Nuit à Tous et Toutes !!!
@+Thierry