none
textbox format date RRS feed

  • 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


    lundi 2 juillet 2012 17:35

Réponses

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

    lundi 2 juillet 2012 19:47
  • 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


    mardi 3 juillet 2012 07:33
  • 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

    mardi 3 juillet 2012 09:14
  • bonsoir,

    avant tout merci de vos répose qui fait grand plaisir , alors je vais tester cela et je vous en fait par au plus vite

    merci encore

    mardi 3 juillet 2012 17:00
  • 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

    mardi 3 juillet 2012 17:29
  • 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 langue
     
    les 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
    mardi 3 juillet 2012 17:51
  • 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

    mardi 3 juillet 2012 18:11
  • Bonsoir,

    Les textBox n'ont rien à voir avec la date, si tu veux deux dates, ben tu affiches deux dateTimePicker, et c'est la date qui figure sur ces dernier qui est prise en compte ainsi que visible.

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mardi 3 juillet 2012 18:15
  • merci eh joe

    je vais tester

    mardi 3 juillet 2012 18:19
  • 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 un
    hasard ...
     
    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 = virgule
     
    Dans un logiciel comme Excel, la norme française n'est pas au mieux au
    vu du clavier, MS autorise donc à saisir le point et afficher la virgule
    décimale. Ce sont de petits détails qui ont leur importance.
     
    --
     
    Cordialement,
     
    Jacques.
     

    Cordialement, Jacques
    mardi 3 juillet 2012 18:30