Meilleur auteur de réponses
textbox format date

Question
-
Bonsoir a tous
Voila je débute( petit débutant) dans le VB 2010 Express,des projets plein la tete mais voila but sur un simple probleme donc je n'arrive pas a resoudre
j'ai un TEXBOX et je voudrais que quand on met une date style 10 12 2012 elle puisse etre afficher dans ce style 10/12/2012 automatiquement
Merci d'avance Merci pour votre comprehension
- Modifié tatouhhhhh lundi 2 juillet 2012 17:42
Réponses
-
- Proposé comme réponse EhJoe mardi 3 juillet 2012 19:09
- Marqué comme réponse Gilles TOURREAUModerator lundi 16 juillet 2012 22:44
Toutes les réponses
-
Bonsoir,
Pour faire ce que vous souhaitez, vous pouvez faire simplement ceci :
If TextBox1.Text.Contains(" ") Then TextBox1.Text = TextBox1.Text.Replace(" ", "/") End If
Cela dit cette méthode n'est pas idéale dans le sens où l'utilisateur peut mettre plusieurs espaces etc...
Pour travailler avec les dates je vous conseille plutôt de vous orienter vers un contrôle DateTimePicker
Les formats des dates seront correctement pris en charge.
Bonne soirée
N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards. Contact
-
Bonjour,
Voici sur la base du code de Michel, mais il y a peut être des fonctions qui font ça mieux ?
' Option Explicit On Public Class Form1 Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim ladate As Date Select Case Asc(e.KeyChar) Case Is < 8 : e.KeyChar = vbNullChar Case 8 ' back space Case 9 To 12 : e.KeyChar = vbNullChar ' Case 13 ' validation <Rc> TextBox1.Text = Trim(TextBox1.Text) If Len(TextBox1.Text) <> 10 Then GoTo faux TextBox1.Text = TextBox1.Text.Replace(" ", "/") Try ladate = TextBox1.Text Catch ex As Exception GoTo faux End Try MsgBox("Date valide") ' ok TextBox1.DeselectAll() Exit Sub faux: MsgBox("Date invalide, saisir : (jj mm aa), remédier...", vbExclamation) TextBox1.Focus() TextBox1.DeselectAll() Exit Sub ' Case 14 To 31 : e.KeyChar = vbNullChar Case 32 ' espace Case 33 To 46 : e.KeyChar = vbNullChar Case 47 : e.KeyChar = vbNullChar ' / Case Is > 57 : e.KeyChar = vbNullChar End Select End Sub End Class
Cordialement.
Joseph Attila PUSZTAY
EhJoe Logiciels Romans Ecrire -
J'approuve à 1000% l'idée d'utiliser plutôt un DateTimePicker qu'un TextBox.
Comme son nom l'indique, TextBox est pour saisir du texte, pas une date.
De plus, si par hasard votre code est internationnalisable, il est pas sur que la bonne représentation de votre date soit comme vous l'indiquez.
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone -
-
rebonsoir bon j'ai tester les deux idees par ehjoe et michel k
desoler ehjoe mais chez moi ton code ne fonctionne pas, pourquoi j'en sais rien comme dit plus tot j'y connais rien
ensuite michel K, l'idee es exelente, mais et oui il y as un mais quand je met les chiffre du jour comme (10) je fait espace il me met bien (/) mais il me met le curseur de suite devant le 10, alors qu'il devrais me mettre (10/12/2012)
alors difficile de mettre la date correctement
mais bon je vois aussi que richard clark , me proposer le code avec Datetimerpicker vous pouvais m'en dire plus ou pourquoi pas un petit
exemple SVP
j'espere etre assez comprehensif dans mes explication
merci d'avance
-
Bonjour tatouhhhhh,Le 03/07/2012 19:29, tatouhhhhh a écrit :> rebonsoir bon j'ai tester les deux idees par ehjoe et michel k>> desoler ehjoe mais chez moi ton code ne fonctionne pas, pourquoi j'en> sais rien comme dit plus tot j'y connais rien>> ensuite michel K, l'idee es exelente, mais et oui il y as un mais quand> je met les chiffre du jour comme (10) je fait espace il me met bien (/)> mais il me met le curseur de suite devant le 10, alors qu'il devrais me> mettre (10/12/2012)>> alors difficile de mettre la date correctement>> mais bon je vois aussi que richard clark , me proposer le code avec> Datetimerpicker vous pouvais m'en dire plus ou pourquoi pas un petit>> exemple SVP>> j'espere etre assez comprehensif dans mes explication>> merci d'avance>Au départ, ce n'est peut être pas une bonne idée d'utiliser le caractère'Espace' comme délimiteur de champs dans une date. Par défaut sous Win7,dans :Panneau de configuration -> Région et langueles séparateurs "valides" sont '/' et '.'.Les contrôle DateTimePicker, et MaskedTextBox les prennent en comptes.DateTimePicker assure également a validité de la date.Y a t-il une raison particulière pour utiliser l'espace ?--Cordialement,Jacques.
Cordialement, Jacques -
bonsoir,
non il y as aucune raison valable mais abitude d'ecrire une date comme sa 10 espace 12 espace 2012 (10 12 2012)
merci pour votre réponse
mais voila j'ai essayer d'utiliser datetimepicker qui es en passanrt pas mal mais voila
deux textbox
textbox1 donne date d'aujourd'hui
passant a demain
textbox2 donne la date suivante logique
mais la textbox1 change aussi comment regler ce probleme
merci
-
- Proposé comme réponse EhJoe mardi 3 juillet 2012 19:09
- Marqué comme réponse Gilles TOURREAUModerator lundi 16 juillet 2012 22:44
-
merci eh joe
je vais tester
- Marqué comme réponse tatouhhhhh mardi 3 juillet 2012 19:07
- Non marqué comme réponse Gilles TOURREAUModerator lundi 16 juillet 2012 22:44
-
Le 03/07/2012 20:11, tatouhhhhh a écrit :> bonsoir,>> non il y as aucune raison valable mais abitude d'ecrire une date comme> sa 10 espace 12 espace 2012 (10 12 2012)>A noter que '/' et '.' sont sur la pavé numérique, ce n'est pas unhasard ...A propos de numérique, on a aussi à faire aux séparateurs : décimal,millier :- pour la France : décimal = virgule, millier = espace- pour les US : décimal = point, millier = virguleDans un logiciel comme Excel, la norme française n'est pas au mieux auvu du clavier, MS autorise donc à saisir le point et afficher la virguledécimale. Ce sont de petits détails qui ont leur importance.--Cordialement,Jacques.
Cordialement, Jacques