VBA : mauvaise prise en compte de la date

Anonyme
2022-10-22T20:01:39+00:00

Bonjour,

Voici un code qui, habituellement, me donne la date entière. Si j'incris 22 oct <entrée> : 22 octobre 2022. Mais dans ce document il maintient 21 oct, seulement la date que je tape.

Merci d'avance pour l'aide.

'Format date en nombre

Public Dat As Date

'Format date

Private Sub txtdate_AfterUpdate()

Dat = Me.txtdate.Value

On Error GoTo Message

Me.txtdate = Format(CDate(Me.txtdate), "yyyy-mm-dd")

Exit Sub

Message:

MsgBox ("Vous avez entré le mauvais format de date !")

Me.txtdate = ""

End Sub

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

5 réponses

  1. DanielCo 107.7K Points de réputation
    2022-10-23T21:11:10+00:00

    Ca fonctionne avec des paramètres locaux France. Il me sembl me rappeler, il y a très longtemps d'un post expliquant que les dates Canada étaient très particulièrement (Format local et format fédéral si je me souviens bien)...

    Ajoute :

    Debug Print DateValue(Me.txtdate)

    Qu'est-ce qui s'affiche dans la fenêtre d'exécution ?

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-10-23T17:54:21+00:00

    Merci Daniel mais même résultat. J'ai également essayé sans le "Public".

    'Format date en nombre

    Public Dat As Date

    'Format date

    Private Sub txtdate_AfterUpdate()

    Dat = Me.txtdate.Value

    On Error GoTo Message

    Me.txtdate = Format(DateValue(Me.txtdate), "yyyy-mm-dd")

    Exit Sub

    Message:

    MsgBox ("Vous avez entré le mauvais format de date !")

    Me.txtdate = ""

    End Sub

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2022-10-23T14:58:48+00:00

    Bonjour,

    J'ai un petit souci avec un code. Dans mon classeur la date est en format yyyy/mm/dd (date courte canadien français). Jusqu'à là, pas de problèmes.

    Par contre dans un des codes où je doit écrire la 2 dates (date de début et date de payement afin de diviser le nombre de montant à budgétiser par mois) je n'arrive pas à trouver le bon code à écrire.

    Voici tout ce que j'ai essayé :

    'Inscrire la date
    'Private Sub Txtdate_AfterUpdate()
    'On Error GoTo Message
    'Me.txtdate = CDate(Me.txtdate)
    'Me.txtdate = Format(CDate(Me.txtdate), "yyyy-mm-dd")
    'End Sub

    Rien à faire, il me présente toujours la date en format jj/mm/yyyy et cela fait planter mon code.

    J'ai fait un test manuel, sans le code en inscrivant la date yyyy/mm/dd et mon code fonctionne.

    Question

    comment obtenir un code qui me donnera la date en yyyy/mm/dd?

    Merci

    VBA ne semble pas aimer le format dd-mm-yyyy

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2022-10-23T07:39:22+00:00

    et bien sûr :

    Me.txtdate = Format(DateValue(Me.txtdate), "yyyy-mm-dd")

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2022-10-23T05:41:46+00:00

    Bonjour Denis,

    Essaie :

    Me.txtdate = DateValue(Me.txtdate)

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire