IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Saisie d'une date dans une textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut Saisie d'une date dans une textbox
    Rebonjour à tous,
    J'ai fait une texbox ou l'utilsateur doit saisir une date...ce que je souhaiterai c'est que par exemple si l'utilsateur veuille mettre 22/11/2007 que ca mette 22 (et ne peux mettre un chiffre > 31) puis / et l'utilisateur tape le mois ( et ne peux pas mettre une chiffre > à 12) puis / et l'année et ne peux mettre que 4 chiffre. Merci Beaucoup

  2. #2
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    J'ai ce bout de code, vois ce que tu peux en faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub TxtDateFact_AfterUpdate()
    ' Variable de formatage de la date
    Dim BDC_Date As String
        ' Vérification si la date existante est déjà correcte
        If IsDate(TxtDateFact.Text) Then
        ' La date saisie est correcte
        Else
            ' La date saisie n'est pas formatée
            If IsNumeric(TxtDateFact.Text) Then
                ' La date est au format jjmmaa
                If Len(TxtDateFact.Text) = 6 Then
                    BDC_Date = Left(TxtDateFact, 2) & "/" & Mid(TxtDateFact, 3, 2) & "/20" & Right(TxtDateFact, 2)
                End If
                ' La date est au format jjmmaaaa
                If Len(TxtDateFact.Text) = 8 Then
                    BDC_Date = Left(TxtDateFact, 2) & "/" & Mid(TxtDateFact, 3, 2) & "/" & Right(TxtDateFact, 4)
                End If
            End If
            ' Vérification que la date formatée est correcte
            If IsDate(BDC_Date) Then
                TxtDateFact.Text = BDC_Date
            Else
                ' Dans les cas ou la saisie n'est pas correcte
                MsgBox "La date est incorrecte : " & TxtDateFact.Text
                TxtDateFact.SetFocus
            End If
        End If
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut
    Je ne suis pas sur que çà réponde à la question...Mais je pense qu'il y a un moyen simple de le faire mais en tout cas merci beaucoup

  4. #4
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour,

    Une autre solution, lors de la validation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Not IsDate (Me.texbox) then
    .........
    .........
    .........
    End if

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut
    En fait ce que je souhaite c'est que lorsque l utilisateur entre la date çà se mette direct en 22/11/2007 et que l'utilisateur ne puisse pas mettre 200700000....

  6. #6
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Il y à un tutoriel pour l'utilisation des contrôles dans les UserForm
    De SilkyRoad ou il indique comment forcer à indiquer une date ds un texbox

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Citation Envoyé par arnold95 Voir le message
    En fait ce que je souhaite c'est que lorsque l utilisateur entre la date çà se mette direct en 22/11/2007 et que l'utilisateur ne puisse pas mettre 200700000....
    Peut-être quelque chose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TextBox3_Change()
        Dim Exemple As String
        Dim ExDate As String
        Exemple = TextBox3.Value
        If ((Len(Exemple) > 5) And (Len(Exemple) < 10)) Then
            Application.EnableEvents = False
            ExDate = Mid(Exemple, 1, 2) & "-" & Mid(Exemple, 3, 2) & "-20" & Mid(Exemple, 5)
            TextBox3.Value = ExDate
            Application.EnableEvents = True
        End If
    End Sub

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    tu peux essayer ceci à adapter à ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub TextBox1_AfterUpdate()
     
    Dim dat, dat1 As String
    dat = Me.TextBox1.Text
    dat1 = Mid(dat, 1, 2) & "/" & Mid(dat, 3, 2) & "/" & Mid(dat, 5, 4)
    Me.TextBox1.Text = dat1
     
    End Sub
    Remplace textbox1 par ta propre textbox

  9. #9
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Partant du code de SilkyRoad:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox1_Change()
     
    TextBox1.MaxLength = 10 
    Valeur = Len(TextBox1)
     
    If Valeur = 2 Or Valeur = 5 Then TextBox1 = TextBox1 & "/"
    If Len(TextBox1) = 10 and Not IsDate(TextBox1) Then TextBox1 = ""
     
    End sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Comparer une date d'une table et une date saisie
    Par minooo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/03/2019, 21h40
  2. [MySQL] insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/08/2014, 11h10
  3. insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2014, 16h31
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo