OVH Cloud OVH Cloud

vba changer le format d'une colonne de dates

14 réponses
Avatar
ThainZ
Bonjour,

J'ai des fichiers qui contiennent dans la colonne A des dates au format date: jj/mm/aaaa hh:mm

Je souhaite sous vba modifier cette colonnes afin d'avoir au format "e;e;standard"e;e; (sans format) la même date sous la forme:
jj-mm-aaaa hh:mm:ss

J'ai réussi à changer en faisant:

Columns("A:A").Select
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"

Ensuite je voulais faire:
Selection.NumberFormat = "General"
pour changer le format, mais ça m'affiche des nombres au lieu de conserver la mise en forme de date.

Merci de votre aide

10 réponses

1 2
Avatar
DanielCo
Bonjour,
"General" correspond au format "Standard" de Excel, donc sans format de
date.
Daniel


Bonjour,

J'ai des fichiers qui contiennent dans la colonne A des dates au format date:
jj/mm/aaaa hh:mm

Je souhaite sous vba modifier cette colonnes afin d'avoir au format
"e;e;standard"e;e; (sans format) la même date sous la forme:
jj-mm-aaaa hh:mm:ss

J'ai réussi à changer en faisant:

Columns("A:A").Select
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"

Ensuite je voulais faire:
Selection.NumberFormat = "General"
pour changer le format, mais ça m'affiche des nombres au lieu de conserver la
mise en forme de date.

Merci de votre aide
Avatar
MichD
Bonjour,

Ceci est suffisant
Columns("A:A").NumberFormat = "General"

MichD
---------------------------------------------------------------
Avatar
thainz
Le mercredi 29 Juillet 2015 à 13:39 par ThainZ :
Bonjour,

J'ai des fichiers qui contiennent dans la colonne A des dates au format date:
jj/mm/aaaa hh:mm

Je souhaite sous vba modifier cette colonnes afin d'avoir au format
"e;e;standard"e;e; (sans format) la même date sous la forme:
jj-mm-aaaa hh:mm:ss

J'ai réussi à changer en faisant:

Columns("A:A").Select
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"

Ensuite je voulais faire:
Selection.NumberFormat = "General"
pour changer le format, mais ça m'affiche des nombres au lieu de
conserver la mise en forme de date.

Merci de votre aide


Bonjour,

Oui, mais comme expliqué ça ne me convient pas car ça renvoi une date sous la forme d'un chiffre au format standard.

Je souhaite avoir un format standard mais avec un affichage "jj-mm-aaaa hh:mm:ss"
Avatar
DanielCo
Bonjour,

Oui, mais comme expliqué ça ne me convient pas car ça renvoi une date sous la
forme d'un chiffre au format standard.

Je souhaite avoir un format standard mais avec un affichage "jj-mm-aaaa
hh:mm:ss"



Bonjour,
C'est ce que tu fais avec :
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"
Ensuite, tu as écrit :
Ensuite je voulais faire:
Selection.NumberFormat = "General"


Pourquoi ?
Daniel
Avatar
JièL
Moi ce que je comprend c'est que ThainZ voulais récupérer la date sous
forme de texte et formaté comme une date.

--
JièL Fort maté


Le 03/08/2015 15:44, DanielCo a écrit :
Bonjour,

Oui, mais comme expliqué ça ne me convient pas car ça renvoi une date
sous la
forme d'un chiffre au format standard.

Je souhaite avoir un format standard mais avec un affichage "jj-mm-aaaa
hh:mm:ss"



Bonjour,
C'est ce que tu fais avec :
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"
Ensuite, tu as écrit :
Ensuite je voulais faire:
Selection.NumberFormat = "General"


Pourquoi ?
Daniel
Avatar
thainz
Le mercredi 29 Juillet 2015 à 13:39 par ThainZ :
Bonjour,

J'ai des fichiers qui contiennent dans la colonne A des dates au format date:
jj/mm/aaaa hh:mm

Je souhaite sous vba modifier cette colonnes afin d'avoir au format
"e;e;standard"e;e; (sans format) la même date sous la forme:
jj-mm-aaaa hh:mm:ss

J'ai réussi à changer en faisant:

Columns("A:A").Select
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"

Ensuite je voulais faire:
Selection.NumberFormat = "General"
pour changer le format, mais ça m'affiche des nombres au lieu de
conserver la mise en forme de date.

Merci de votre aide


Comme expliqué j'essaye d'avoir la colonne au format "standard" mais avec l'affichage "jj-mm-aaaa hh:mm:ss".

En faisant seulement Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss" le format reste un format date
Avatar
DanielCo
Moi ce que je comprend c'est que ThainZ voulais récupérer la date sous forme
de texte et formaté comme une date.

--
JièL Fort maté



Si c'est ça :

Dim C As Range
For Each C In Selection
C.Value = Format(C.Value, "dd-mm-yyyy hh:mm:ss")
Next C
Selection.NumberFormat = "General"
Daniel
Avatar
isabelle
bonjour thainz,

je crois que tu ne fais pas la différence entre le format d'une cellule et le a
valeur d'une cellule.

isabelle

Le 2015-08-03 10:01, thainz a écrit :

Comme expliqué j'essaye d'avoir la colonne au format "standard" mais avec
l'affichage "jj-mm-aaaa hh:mm:ss".

En faisant seulement Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss" le format
reste un format date

Avatar
thainz
Le mercredi 29 Juillet 2015 à 13:39 par ThainZ :
Bonjour,

J'ai des fichiers qui contiennent dans la colonne A des dates au format date:
jj/mm/aaaa hh:mm

Je souhaite sous vba modifier cette colonnes afin d'avoir au format
"e;e;standard"e;e; (sans format) la même date sous la forme:
jj-mm-aaaa hh:mm:ss

J'ai réussi à changer en faisant:

Columns("A:A").Select
Selection.NumberFormat = "dd-mm-yyyy hh:mm:ss"

Ensuite je voulais faire:
Selection.NumberFormat = "General"
pour changer le format, mais ça m'affiche des nombres au lieu de
conserver la mise en forme de date.

Merci de votre aide


Super, ça fonctionne merci beaucoup :D

Par contre le temps d'exécution est très long (~1minute sur mon fichier de test d'environ 150lignes)

C'est peut être lié au fait que l'on applique l'action a toutes les celulles de la colonne et pas uniquement au celulles non vides.

Est ce qu'on pourrait faire quelque chose pour s'arrêter dès qu'il n'y a plus de valeurs
Avatar
DanielCo
Le mercredi 29 Juillet 2015 à 13:39 par ThainZ :
Super, ça fonctionne merci beaucoup :D

Par contre le temps d'exécution est très long (~1minute sur mon fichier de
test d'environ 150lignes)

C'est peut être lié au fait que l'on applique l'action a toutes les celulles
de la colonne et pas uniquement au celulles non vides.

Est ce qu'on pourrait faire quelque chose pour s'arrêter dès qu'il n'y a plus
de valeurs



Tu réponds à qui, là ?
Daniel
1 2