Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Date au format américain dans vba excel

8 réponses
Avatar
chesterfield
Bonjour à tous, sous VBA excel, lorsque je fais un msgbox d'une date, ma
date saisie au format français ressort au format américain dans mon msgbox
(c'est à dire que le mois et le jour sont inversés).

Comment puis-je faire pour résoudre ce problème ?

Je vous met le code de ma macro pour que vous compreniez mieux :

Dim DateVerif As Date

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une fiche

DateVerif = CDate(TxtDateVerif) => pas d'erreur

MsgBox (dateverif) => affichage : 12/01/2000 au lieu de 01/12/2000




Merci d'avance

8 réponses

Avatar
Christophe JEAN
Bonsoir

Il faut utiliser la fonction Format(La_Valeur, "Le format")

Exemple

MsgBox Format(MaDate, "dd/mm/yyyy")

@+

Christophe

"chesterfield" a écrit dans le message de news:
435fd196$0$451$
Bonjour à tous, sous VBA excel, lorsque je fais un msgbox d'une date, ma
date saisie au format français ressort au format américain dans mon msgbox
(c'est à dire que le mois et le jour sont inversés).

Comment puis-je faire pour résoudre ce problème ?

Je vous met le code de ma macro pour que vous compreniez mieux :

Dim DateVerif As Date

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une fiche

DateVerif = CDate(TxtDateVerif) => pas d'erreur

MsgBox (dateverif) => affichage : 12/01/2000 au lieu de 01/12/2000




Merci d'avance




Avatar
bruno
bonsoir,
essaye ça
Format(Date, "dd/mm/yyyy")
date étant la fonction date du jour autrement met ta date dans une
variable en utiliisant "format" et affiche la variable dans le msgbox
au revoir

Bonjour à tous, sous VBA excel, lorsque je fais un msgbox d'une date, ma
date saisie au format français ressort au format américain dans mon msgbox
(c'est à dire que le mois et le jour sont inversés).

Comment puis-je faire pour résoudre ce problème ?

Je vous met le code de ma macro pour que vous compreniez mieux :

Dim DateVerif As Date

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une fiche

DateVerif = CDate(TxtDateVerif) => pas d'erreur

MsgBox (dateverif) => affichage : 12/01/2000 au lieu de 01/12/2000




Merci d'avance




Avatar
Herve78
C'est effectivement un problème insoluble avec la fonction FORMAT, car VBA ne
travaille qu'en date américaine. La seule solution que j'ai trouvé est de
convertir les dates en nombre à l'aide du script publié sur Excelabo :
http://www.excelabo.net/xl/dates.php#datefrancaise




Bonjour à tous, sous VBA excel, lorsque je fais un msgbox d'une date, ma
date saisie au format français ressort au format américain dans mon msgbox
(c'est à dire que le mois et le jour sont inversés).

Comment puis-je faire pour résoudre ce problème ?

Je vous met le code de ma macro pour que vous compreniez mieux :

Dim DateVerif As Date

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une fiche

DateVerif = CDate(TxtDateVerif) => pas d'erreur

MsgBox (dateverif) => affichage : 12/01/2000 au lieu de 01/12/2000




Merci d'avance





Avatar
Ange Ounis
txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une fiche


Je suppose que, par fiche, tu entends une TextBox sur un Userform.
Si oui, tu récupères du texte et l'utilisation de CDate *doit* donner le
résultat (correct) attendu :

Sub essai()
Dim DateVerif As Date
TxtDateVerif = "1/12/2000"
MsgBox CDate(TxtDateVerif)
End Sub

----------
Ange Ounis
----------

Bonjour à tous, sous VBA excel, lorsque je fais un msgbox d'une date, ma
date saisie au format français ressort au format américain dans mon msgbox
(c'est à dire que le mois et le jour sont inversés).

Comment puis-je faire pour résoudre ce problème ?

Je vous met le code de ma macro pour que vous compreniez mieux :

Dim DateVerif As Date

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une fiche

DateVerif = CDate(TxtDateVerif) => pas d'erreur

MsgBox (dateverif) => affichage : 12/01/2000 au lieu de 01/12/2000




Merci d'avance




Avatar
chesterfield
le pb c'est que si on saisit une mauvaise date du genre "01/13/2000" il va
la convertir directement en 13/01/2000 alors que je voudrais qu'il me
retourne un message d'erreur car le mois 13 n'existe pas.

Comment faire ?
"Ange Ounis" a écrit dans le message de
news:%
txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une
fiche



Je suppose que, par fiche, tu entends une TextBox sur un Userform.
Si oui, tu récupères du texte et l'utilisation de CDate *doit* donner le
résultat (correct) attendu :

Sub essai()
Dim DateVerif As Date
TxtDateVerif = "1/12/2000"
MsgBox CDate(TxtDateVerif)
End Sub

----------
Ange Ounis
----------

Bonjour à tous, sous VBA excel, lorsque je fais un msgbox d'une date, ma
date saisie au format français ressort au format américain dans mon
msgbox


(c'est à dire que le mois et le jour sont inversés).

Comment puis-je faire pour résoudre ce problème ?

Je vous met le code de ma macro pour que vous compreniez mieux :

Dim DateVerif As Date

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une
fiche



DateVerif = CDate(TxtDateVerif) => pas d'erreur

MsgBox (dateverif) => affichage : 12/01/2000 au lieu de 01/12/2000




Merci d'avance






Avatar
Ange Ounis
Si tu veux t'assurer du passage d'une date valide, il n'y a pas 36 solutions.
Perso je n'en vois que 2.
Ou décortiquer la variable txtdateverif et vérifier chacun de ses éléments :
l'année est-elle comprise entre 1900 et 9999 ? le mois entre 1 et 12 ? le jour
en fonction du mois et entre 1 et 31 ? y a-t-il bien deux séparateurs de date (/) ?
Ou faire comme Excel cad se débrouiller, quand on le lui demande expressement
(ce qui est le cas avec CDate), pour trouver une date dans l'entrée fournie. Sa
solution VBA ne te satisfait pas mais tu peux essayer de l'aménager pour être
plus "acceptable" en fonction de tes paramètres régionaux :

Sub essai2()
Dim Jour, Mois, An, TxtDateVerif
TxtDateVerif = "1/13/2000"
Jour = Split(TxtDateVerif, "/")(0)
Mois = Split(TxtDateVerif, "/")(1)
An = Split(TxtDateVerif, "/")(2)
MsgBox DateSerial(An, Mois, Jour)
End Sub

----------
Ange Ounis
----------

le pb c'est que si on saisit une mauvaise date du genre "01/13/2000" il va
la convertir directement en 13/01/2000 alors que je voudrais qu'il me
retourne un message d'erreur car le mois 13 n'existe pas.

Comment faire ?
"Ange Ounis" a écrit dans le message de
news:%

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une



fiche

Je suppose que, par fiche, tu entends une TextBox sur un Userform.
Si oui, tu récupères du texte et l'utilisation de CDate *doit* donner le
résultat (correct) attendu :

Sub essai()
Dim DateVerif As Date
TxtDateVerif = "1/12/2000"
MsgBox CDate(TxtDateVerif)
End Sub

----------
Ange Ounis
----------


Bonjour à tous, sous VBA excel, lorsque je fais un msgbox d'une date, ma
date saisie au format français ressort au format américain dans mon



msgbox

(c'est à dire que le mois et le jour sont inversés).

Comment puis-je faire pour résoudre ce problème ?

Je vous met le code de ma macro pour que vous compreniez mieux :

Dim DateVerif As Date

txtdateverif= 01/12/2000 => Date saisie par l'utilisateur dans une



fiche

DateVerif = CDate(TxtDateVerif) => pas d'erreur

MsgBox (dateverif) => affichage : 12/01/2000 au lieu de 01/12/2000




Merci d'avance











Avatar
Modeste
Ange Ounis wrote:
Si tu veux t'assurer du passage d'une date valide, il n'y a pas 36
solutions.


Salut Fred !!!
J'ai cru ressentir une certaine fébrilité sur ce sujet ....
m'étonnerai que les américains connaissent les sans-culottides !!!!!

Bon anniversaire Fred !!!!
Bonne fête Clément !!!!


--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

Avatar
Ange Ounis
Salut Gilbert !

Pas sûr qu'un sans-culottide quelconque au format américain donne une date en
octobre au lieu de septembre, mais ce n'est pas grave, comme d'hab c'est
l'intention qui compte.
:)

----------
Ange Ounis
----------

Ange Ounis wrote:

Si tu veux t'assurer du passage d'une date valide, il n'y a pas 36
solutions.



Salut Fred !!!
J'ai cru ressentir une certaine fébrilité sur ce sujet ....
m'étonnerai que les américains connaissent les sans-culottides !!!!!

Bon anniversaire Fred !!!!
Bonne fête Clément !!!!