Discussion:
Format date en Français
(trop ancien pour répondre)
Alf
2020-05-01 05:43:01 UTC
Permalink
Bonjour à tous,
J'espère que vous vous portez bien par ces temps de pandémie.

Un sujet qui a dû être traité des milliers de fois, mais bon, je repose la question.

Dans une cellule, j'ai une valeur "09/04/2020 16:36:56" en format jj/mm/aaaa hh:mm.
En VBA, je prends les 10 1ers caractères que j'affecte à une autre cellule en format date.
J'obtiens toujours le format US 04/09/2020.

Comment retrouvé le format Français ?
Je peux travailler la date et la réorganiser mais c'est trop fastidieux.

Merci pour votre aide
Alf
MichD
2020-05-01 10:05:03 UTC
Permalink
Post by Alf
Bonjour à tous,
J'espère que vous vous portez bien par ces temps de pandémie.
Un sujet qui a dû être traité des milliers de fois, mais bon, je repose la question.
Dans une cellule, j'ai une valeur "09/04/2020 16:36:56" en format jj/mm/aaaa hh:mm.
En VBA, je prends les 10 1ers caractères que j'affecte à une autre cellule en format date.
J'obtiens toujours le format US 04/09/2020.
Comment retrouvé le format Français ?
Je peux travailler la date et la réorganiser mais c'est trop fastidieux.
Merci pour votre aide
Alf
Bonjour,

Lorsque tu extrais seulement les 10 premiers caractères, tu obtiens une
valeur "TEXTE". En VBA, tout ce qui ressemble à une date est au format
américain MM / JJ / YY sauf pour les dates dont le jour est plus grand
que 12, car Excel comprend qu'il ne peut pas y avoir plus de 12 mois
dans une année et par conséquent, tu obtiens un format : jj/MM/aa.

Voici une manière de procéder :

'-------------------------------------------
Sub test()
'Une variable As Date prend le format court
'du panneau de configuration de Windows.
'dans mon cas le format est : JJ/MM/AA
Dim D As Date

'En A1 : La valeur initiale : 01/05/20 5:52
'Le format de la variable D est le même : JJ/MM/AA
D = Range("A1")

With Range("D1") 'Obtenir seulement la date
'Si le panneau de configuration a un autre format
'que ceci : "DD/MM/YY", tu ajoutes cette ligne sinon
'elle n'est pas obligatoire!
.NumberFormat = "DD/MM/YY"
'Pour extraire la date seulement sans les h:MM
.Value = DateSerial(Year(D), Month(D), Day(D))
End With

End Sub
'-------------------------------------------

MichD
Péhemme
2020-05-01 10:10:43 UTC
Permalink
Bonjour,

Un truc comme ça ? :
Sub TestFormat()
Dim Var As Date
Var = Range("B5")
With Range("D5")
.NumberFormat = "dd/mm/yyyy;@"
.Value = Var
End With
End Sub

Michel

"Alf" a écrit dans le message de groupe de discussion :
533bd19d-0223-4019-be84-***@googlegroups.com...

Bonjour à tous,
J'espère que vous vous portez bien par ces temps de pandémie.

Un sujet qui a dû être traité des milliers de fois, mais bon, je repose la
question.

Dans une cellule, j'ai une valeur "09/04/2020 16:36:56" en format
jj/mm/aaaa hh:mm.
En VBA, je prends les 10 1ers caractères que j'affecte à une autre cellule
en format date.
J'obtiens toujours le format US 04/09/2020.

Comment retrouvé le format Français ?
Je peux travailler la date et la réorganiser mais c'est trop fastidieux.

Merci pour votre aide
Alf
MichD
2020-05-01 11:23:37 UTC
Permalink
Bonjour Péhemme

Si je peux me permettre

Ce que tu proposes affiche effectivement le résultat dans la cellule au
format "JJ/MM/AAAA". Je te fais cependant remarquer que le contenu de la
cellule inclus la valeur décimale des H:MM:SS même s'il le format ne les
affiche pas. Par conséquent, la cellule ne contient pas seulement la
date, mais la date + heures minutes secondes même si le format est bien
JJ/MM/AAAA. Pour prouver mes propos, affiche le contenu de la cellule D1
au format "Standard". Tu verras la section décimale représentant les
H:MM:SS. C'est une subtilité, mais cela dépend ce que le demandeur
désire réellement!

MichD
Péhemme
2020-05-01 13:14:13 UTC
Permalink
Bonjour Denis,
Post by MichD
Si je peux me permettre
Avec moi, tu peux tout te permettre
;-))

J'avais compris que le demandeur souhaitait obtenir un format texte dans la
mesure où il "prenait les 10 1ers caractères".
Par ailleurs il ne précisait pas ce qu'il souhaitait faire du résultat
obtenu et le temps de rédiger ma réponse tu avais déjà dégainer.
Il faut que j'apprenne à être plus rapide du clavier :-)))

En tous cas, merci de ta précision et n'hésite pas, c'est toujours un
plaisir

Bien amicalement
Michel


"MichD" a écrit dans le message de groupe de discussion :
r8h0rq$1up9$***@gioia.aioe.org...

Bonjour Péhemme

Si je peux me permettre

Ce que tu proposes affiche effectivement le résultat dans la cellule au
format "JJ/MM/AAAA". Je te fais cependant remarquer que le contenu de la
cellule inclus la valeur décimale des H:MM:SS même s'il le format ne les
affiche pas. Par conséquent, la cellule ne contient pas seulement la
date, mais la date + heures minutes secondes même si le format est bien
JJ/MM/AAAA. Pour prouver mes propos, affiche le contenu de la cellule D1
au format "Standard". Tu verras la section décimale représentant les
H:MM:SS. C'est une subtilité, mais cela dépend ce que le demandeur
désire réellement!

MichD
Alf
2020-05-11 05:21:49 UTC
Permalink
Post by Alf
Bonjour à tous,
J'espère que vous vous portez bien par ces temps de pandémie.
Un sujet qui a dû être traité des milliers de fois, mais bon, je repose la question.
Dans une cellule, j'ai une valeur "09/04/2020 16:36:56" en format jj/mm/aaaa hh:mm.
En VBA, je prends les 10 1ers caractères que j'affecte à une autre cellule en format date.
J'obtiens toujours le format US 04/09/2020.
Comment retrouvé le format Français ?
Je peux travailler la date et la réorganiser mais c'est trop fastidieux.
Merci pour votre aide
Alf
Merci pour vos réponses.
C'est ce que je voulais MichD
J'avais magouillé un truc en attendant, mais c'est plus rapide ta méthode.
A+

Loading...