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 :

Transformer une date issue d'une texbox en texte au format US


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut Transformer une date issue d'une texbox en texte au format US
    Bonjour

    Je cherche à transformer une date présente dans une textbox nommée "TDate" au format JJ/MM/AAAA en simple texte mais en format US AAAA/MM/JJ

    Par exemple, la date :
    16/07/2018 -> devient -> 20180716 en texte

    Pourriez vous m'indiquer comment réaliser cela svp ?
    Cordialement,

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = Format(CDate(textbox1), "yyyymmdd")
    eric

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je conseille plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = Format(DateSerial(Right(textbox1, 4), Mid(textbox1, 4, 2), Left(textbox1, 2)), "yyyymmdd")
    Faire un test avec 01/03/2018.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut
    J'essaie d'intégrer ce petit code dans la fonction d'un bouton qui appelle un 'datepicker'

    Ce bouton affiche alors la date au format JJ/MM/AAAA dans la textbox nommée "TDateDevis"

    Ce que je souhaite c'est qu'ensuite cette date soit reprise puis transformée pour apparaitre dans une seconde textbox nommée "TReferenceFixeDevis"

    Actuellement, la compilation renvoi un 'type mismatch'


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Bt1_Click()
    Set calen = TDateDevis
    'TReferenceFixeDevis = Format(DateSerial(Right(TDateDevis, 4), Mid(TDateDevis, 4, 2), Left(TDateDevis, 2)), "yyyymmdd")
    TReferenceFixeDevis = Format(CDate(TDateDevis), "yyyymmdd")
        Calendrier.Show 0
    End Sub
    Merci a vous,

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Re, salut Menhir,

    aucun soucis chez moi sur 01/03/2018 avec Cdate().
    Même s'il est vrai que parfois Cdate se fait avoir.
    eric

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    aucun soucis chez moi sur 01/03/2018 avec Cdate().
    Même s'il est vrai que parfois Cdate se fait avoir.
    Salut Eriiic,
    J'ai déjà eu pas mal de déboire avec l'ambigüité anglophone/francophone de VBA, en particulier sur les date.
    Depuis, je préfère me méfier.

    en format US AAAA/MM/JJ
    Petite remarque : à ma connaissance le format US n'est pas AAAA/MM/JJ mais MM/JJ/AAAA (ce qui est encore plus illogique que le notre).

    Actuellement, la compilation renvoi un 'type mismatch'
    C'est quoi ça : Set calen = TDateDevis
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Points : 52
    Points
    52
    Par défaut
    Permet de mettre la date cliqué dans le datepicker ( calendrier en pop-up) dans la textbox appelée "TDateDevis"

    Savez vous pourquoi j'obtiens un Run Time error 13 "type mismatch" lorsque la fonction est appelée quand j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TDateDevis_Change()
    ' Remplissage de la textbox "TReferenceFixeDevis" lorsque "TDateDevis" contient une date insérée via le calendrier pop-up.
    TReferenceFixeDevis = Format(DateSerial(Right(TDateDevis, 4), Mid(TDateDevis, 4, 2), Left(TDateDevis, 2)), "yyyymmdd")
    End Sub

    Si la fonction contient ceci, elle fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TDateDevis_Change()
    ' Remplissage de la textbox "TReferenceFixeDevis" lorsque "TDateDevis" contient une date insérée via le calendrier pop-up.
    TReferenceFixeDevis = Format(CDate(TDateDevis), "yyyymmdd")
    End Sub

    Est ce qu'il est possible que cela soit lié au fait que l'Excel que j'utiliise actuellement en Anglais avec une version de Windows en Anglais également ?

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par lcoulon Voir le message
    Savez vous pourquoi j'obtiens un Run Time error 13 "type mismatch" lorsque la fonction est appelée quand j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TDateDevis_Change()
    ' Remplissage de la textbox "TReferenceFixeDevis" lorsque "TDateDevis" contient une date insérée via le calendrier pop-up.
    TReferenceFixeDevis = Format(DateSerial(Right(TDateDevis, 4), Mid(TDateDevis, 4, 2), Left(TDateDevis, 2)), "yyyymmdd")
    End Sub
    Es-tu sûr que la date saisie soit de format JJ/MM/AAAA ?
    Ne serait-ce pas plutôt JJ/MM/AA ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    tu parlais d'un textbox.
    J'ai bien l'impression que tu as plutôt un composant qui te retourne une vraie date.
    Dans ce cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format(TDateDevis, "yyyymmdd")
    devrait suffire.
    eric

Discussions similaires

  1. [AC-2003] Ajouter 15j à une date issue d'une requête
    Par gomick dans le forum Access
    Réponses: 7
    Dernier message: 27/01/2012, 12h35
  2. [SQL] Ajouter une durée à une date et obtenir une date valide
    Par bigltnt dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/06/2007, 15h55
  3. [Débutant] Calcul d'une date à partir d'une date de départ et d'une durée
    Par Marmotton76 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/04/2007, 11h39
  4. Réponses: 2
    Dernier message: 21/03/2007, 17h06
  5. Réponses: 14
    Dernier message: 09/01/2007, 17h19

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