prise de tête avec le format de date

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fredo P.
Le #17896861
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




Philippe.R
Le #17896851
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" 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




Daniel.C
Le #17897001
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" 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






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


"Daniel.C" 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" 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










isabelle
Le #17899641
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





Publicité
Poster une réponse
Anonyme