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

prise de tête avec le format de date

5 réponses
Avatar
elli6258
Bonsoir,
Me voilà de nouveau avec un problème de Date.

J'ai une colonne de date dont certains sont sous cette forme : "05/01/2009
12:00:00" et d'autres sont "normaux" : 05/01/2009.
Le format est herité d'un import d'une autre appli.

j'ai donc fait cette macro pour mettre tout le monde sous la même forme
(05/01/2009) car le format est utilisé plus loin en MFC.

Ma macro :
Range("O3:O" & lignevide).Select
For Each C In Selection
C.Value = Left(C, 10)
Next C
Le problème est le suivant : le champ heure disparait mais la date se met en
format : 01/05/2009 si le jour est inférieur à 12.
Pouvez-vous m'aider à régler ce problème ?
Merci d'avance
Michel

5 réponses

Avatar
Fredo P.
Essaies celle-ci:
Range("O3:O" & lignevide).Select
For Each C In Selection
C.Value = CDbl(CDate(C))
Next C
Le problème est le suivant : le champ heure disparait mais la date se met


en
format : 01/05/2009 si le jour est inférieur à 12.
Pouvez-vous m'aider à régler ce problème ?
Merci d'avance
Michel




Avatar
Philippe.R
Bonsoir,
Il ne faut pas oublier que VBA travaille par défaut avec des formats
anglosaxons ; le mieux est de convertir en utilisant dateserial(year(la
valeur),month(la valeur),day(la valeur))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"elli6258" a écrit dans le message de
news:
Bonsoir,
Me voilà de nouveau avec un problème de Date.

J'ai une colonne de date dont certains sont sous cette forme : "05/01/2009
12:00:00" et d'autres sont "normaux" : 05/01/2009.
Le format est herité d'un import d'une autre appli.

j'ai donc fait cette macro pour mettre tout le monde sous la même forme
(05/01/2009) car le format est utilisé plus loin en MFC.

Ma macro :
Range("O3:O" & lignevide).Select
For Each C In Selection
C.Value = Left(C, 10)
Next C
Le problème est le suivant : le champ heure disparait mais la date se met
en format : 01/05/2009 si le jour est inférieur à 12.
Pouvez-vous m'aider à régler ce problème ?
Merci d'avance
Michel




Avatar
Daniel.C
Bonsoir.
For Each c In Range("O3:O" & lignevide)
c.Value = CDate(c.Value)
c.NumberFormat = "dd/mm/yyyy"
Next c
Cordialement.
Daniel

Bonsoir,
Il ne faut pas oublier que VBA travaille par défaut avec des formats
anglosaxons ; le mieux est de convertir en utilisant dateserial(year(la
valeur),month(la valeur),day(la valeur))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"elli6258" a écrit dans le message de
news:
Bonsoir,
Me voilà de nouveau avec un problème de Date.

J'ai une colonne de date dont certains sont sous cette forme : "05/01/2009
12:00:00" et d'autres sont "normaux" : 05/01/2009.
Le format est herité d'un import d'une autre appli.

j'ai donc fait cette macro pour mettre tout le monde sous la même forme
(05/01/2009) car le format est utilisé plus loin en MFC.

Ma macro :
Range("O3:O" & lignevide).Select
For Each C In Selection
C.Value = Left(C, 10)
Next C
Le problème est le suivant : le champ heure disparait mais la date se met
en format : 01/05/2009 si le jour est inférieur à 12.
Pouvez-vous m'aider à régler ce problème ?
Merci d'avance
Michel






Avatar
elli6258
Bonsoir,
Je vous remercie vivement de ces réponses rapide.
je viens de tester les 3 solutions qui fonctionnent.
Cordialement
Michel


"Daniel.C" a écrit dans le message de news:
eKtP$%
Bonsoir.
For Each c In Range("O3:O" & lignevide)
c.Value = CDate(c.Value)
c.NumberFormat = "dd/mm/yyyy"
Next c
Cordialement.
Daniel

Bonsoir,
Il ne faut pas oublier que VBA travaille par défaut avec des formats
anglosaxons ; le mieux est de convertir en utilisant dateserial(year(la
valeur),month(la valeur),day(la valeur))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"elli6258" a écrit dans le message de
news:
Bonsoir,
Me voilà de nouveau avec un problème de Date.

J'ai une colonne de date dont certains sont sous cette forme :
"05/01/2009 12:00:00" et d'autres sont "normaux" : 05/01/2009.
Le format est herité d'un import d'une autre appli.

j'ai donc fait cette macro pour mettre tout le monde sous la même forme
(05/01/2009) car le format est utilisé plus loin en MFC.

Ma macro :
Range("O3:O" & lignevide).Select
For Each C In Selection
C.Value = Left(C, 10)
Next C
Le problème est le suivant : le champ heure disparait mais la date se
met en format : 01/05/2009 si le jour est inférieur à 12.
Pouvez-vous m'aider à régler ce problème ?
Merci d'avance
Michel










Avatar
isabelle
bonjour Michel,

Range("O3:O" & lignevide).Select
For Each C In Selection
Range(C.Address) = CDate(Format(C, "yyyy-mm-dd"))
Next C
Selection.NumberFormat = "m/d/yyyy"

isabelle

elli6258 a écrit :
Bonsoir,
Me voilà de nouveau avec un problème de Date.

J'ai une colonne de date dont certains sont sous cette forme : "05/01/2009
12:00:00" et d'autres sont "normaux" : 05/01/2009.
Le format est herité d'un import d'une autre appli.

j'ai donc fait cette macro pour mettre tout le monde sous la même forme
(05/01/2009) car le format est utilisé plus loin en MFC.

Ma macro :
Range("O3:O" & lignevide).Select
For Each C In Selection
C.Value = Left(C, 10)
Next C
Le problème est le suivant : le champ heure disparait mais la date se met en
format : 01/05/2009 si le jour est inférieur à 12.
Pouvez-vous m'aider à régler ce problème ?
Merci d'avance
Michel