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 :

Problème format date en lien avec TextBox [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2018
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2018
    Messages : 281
    Par défaut Problème format date en lien avec TextBox
    Bonjour à toutes et tous,

    Dans mon tableau "Cpta_Test" la colonne Date est au format personnalisé jj/mm/aa.

    Dans mon formulaire, j'ai un TextBox nommé "TextBox_Date".
    Le code associé est le suivant :
    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
    Private Sub TextBox_Date_AfterUpdate() ' AfterUpdate = Valide la saisie dès qu'elle est terminée
    'La cellule de destination Date (Exxxxx de la feuille active) obtient la valeur de la zone de texte nommée "TextBox_Date"
     
    ' Pour écrire à la colonne nommée "Date" et à la ligne qui suit la dernière du tableau nommé "Cpta_Test"
      Dim t As ListObject ' t = Le tableau concerné
      Dim cn As Integer   ' cn = La colonne concernée
      Set t = Range("Cpta_Test").ListObject ' Cpta_Test = tableau pour écriture
      With t
       cn = .ListColumns("Date").Index ' Nom de la colonne concernée
       .ListRows.Add                      ' Ajoute une nouvelle ligne à la fin du tableau
       With .DataBodyRange
       .Cells(.Rows.Count, cn).Value = TextBox_Date.Value ' Identification de la cellule concernée et insertion valeur saisie
       End With
      End With
      Set t = Nothing
     
    ' **** Evite de saisir le / dans le TextBox_Date *************
        Dim Valeur As Byte
        TextBox_Date.MaxLength = 10 'nb caractères maxi autorisé dans le textbox 
        Valeur = Len(TextBox_Date)
        If Valeur = 2 Or Valeur = 5 Then TextBox_Date = TextBox_Date & "/"
    ' ***************************************************************************
     
    End Sub
    Ce code marche bien et lors de la validation du formulaire, la date saisie (par exemple 01/08/2023 ou 01/08/23) est inscrite au bon endroit (cellule de destination).

    Le formatage de la cellule de destination est toujours au format personnalisé jj/mm/aa.
    Mais l'affichage reste sur 10 caractères soit 01/08/2023
    Cette valeur n'est pas reconnue comme une date.

    Si je mets 8 caractères ligne 19, ma saisie devient 01/08/23, l'affichage est bien sur 8 caractères soit 01/08/23.
    Mais j'ai le petit triangle vert en haut à gauche de la cellule qui apparait pour me signaler une erreur : "Date du texte avec une année à 2 chiffres".
    Pour corriger, il m'est proposé entre autre "Convertir XX en 20XX"

    Comment puis sortir de cette situation ?
    En d'autre termes, comment dire que la date saisie en texte est une date.

    Merci pour votre aide,

    Philippe

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 246
    Par défaut
    Hello,
    il faut convertir le contenu de ta zone de texte qui est en texte, en date avec CDate par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      .Cells(.Rows.Count, cn).Value = CDate(TextBox_Date.Value)
    [EDIT] bonjour 78chris , on est bien d'accord sur la solution

    Ami calmant, J.P

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 566
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 566
    Par défaut
    Bonjour

    Le format n'est qu'un habillage qui doit d'ailleurs être dans la cellule de destination, et non dans le code
    Une TextBox fournit du texte : il faut donc une conversion de type avec CDate, après contrôle de la saisie car sinon cela plante...

    Oups : bonjour JP

  4. #4
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2018
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2018
    Messages : 281
    Par défaut
    Bonjour Messieurs,

    Merci pour vos réponses simultanées.

    Cela fonctionne.

    Philippe

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

Discussions similaires

  1. [XL-2013] Problème format date Excel avec format date SQL Server fichier connecté
    Par berceker united dans le forum Excel
    Réponses: 0
    Dernier message: 05/12/2017, 09h58
  2. [MySQL] Problème format date différent avec calendrier Javascript
    Par Aiglichon dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/01/2013, 10h36
  3. problèmes requête sql, dont lien avec la valeur d'un textbox
    Par Drone dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 12/02/2009, 17h28
  4. Problème format Date avec VS2003
    Par vaohdan dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/05/2007, 12h06
  5. Problème à l'édition des liens avec BCC55 et Xerces
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/11/2003, 14h50

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