Bonjour à tous,
j'ai un petit souci sur mon tableau excel et j'aurai besoin d'un peu d'aide.
J'ai un logiciel au boulot qui exporte des données au format CSV pour que l'on puisse les traiter sur excel et en tirer des courbes.
Les données de la première colonne sont des dates et des heures au format jj/mm/aaaa hh:mm:ss.ms
Chaque fois que nous travaillons avec ces données, nous avons l'habitude de modifier manuellement la date pour ne garder que la date au format j/mm/aa h:mm sans le :ss.ms.
Pour cela, nous devons dans un premier temps remplacer les points par des virgules, pour ensuite changer le format de la cellule et le passer au format date.
Nous souhaitons faire une macro pour accélerer cette manoeuvre car il y'a beaucoup de colonnes, d'onglets et de fichiers.
Donc je me suis penché dessus et je bloque.
Voici ma macro:
Columns("A:A").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("A:A").Select
Selection.NumberFormat = "d/m/yy h:mm;@"
Ce qui logiquement devrait fonctionner.
Seulement la pseudo date passe de ça: 18/04/2012 00:15:00.000 à 18/04/2012 00:15:00,000 et ne se transforme pas en date au format j/m/aa h:mm.
J'ai entendu sur des forums qu'il y'avait un bug avec VBA et qu'il fallait remplacer un point par un point mais cela ne fonctionne pas. J'ai également changer les options de régions et de langues mais cela ne fait rien.
Je me suis demandé si je n'avais pas intérêt à copier qu'une partie du texte de la cellule pour en extraire la première partie mais je ne pense pas que cela marcherait.
J'ai aussi tenté en utilisant la fonction Remplacer de virer le :00.000 par un vide mais la cellule reste en texte et ne se transforme pas en date même en changeant le format de la cellule.
Donc je pense que je fais une erreur dans ma macro mais je ne vois pas où.
Ou bien il y'a peut-être une pirouette que l'un d'entre vous connait.
Donc je m'en remet à vous pour éclairer mes lanternes.
Désolé d'avoir été si long mais j'ai souhaité être le plus clair pour vous éviter de vous faire perdre du temps en cherchant à me comprendre.
Un grand merci en tout cas.
Cordialement
j'ai un petit souci sur mon tableau excel et j'aurai besoin d'un peu d'aide.
J'ai un logiciel au boulot qui exporte des données au format CSV pour que l'on puisse les traiter sur excel et en tirer des courbes.
Les données de la première colonne sont des dates et des heures au format jj/mm/aaaa hh:mm:ss.ms
Chaque fois que nous travaillons avec ces données, nous avons l'habitude de modifier manuellement la date pour ne garder que la date au format j/mm/aa h:mm sans le :ss.ms.
Pour cela, nous devons dans un premier temps remplacer les points par des virgules, pour ensuite changer le format de la cellule et le passer au format date.
Nous souhaitons faire une macro pour accélerer cette manoeuvre car il y'a beaucoup de colonnes, d'onglets et de fichiers.
Donc je me suis penché dessus et je bloque.
Voici ma macro:
Columns("A:A").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("A:A").Select
Selection.NumberFormat = "d/m/yy h:mm;@"
Ce qui logiquement devrait fonctionner.
Seulement la pseudo date passe de ça: 18/04/2012 00:15:00.000 à 18/04/2012 00:15:00,000 et ne se transforme pas en date au format j/m/aa h:mm.
J'ai entendu sur des forums qu'il y'avait un bug avec VBA et qu'il fallait remplacer un point par un point mais cela ne fonctionne pas. J'ai également changer les options de régions et de langues mais cela ne fait rien.
Je me suis demandé si je n'avais pas intérêt à copier qu'une partie du texte de la cellule pour en extraire la première partie mais je ne pense pas que cela marcherait.
J'ai aussi tenté en utilisant la fonction Remplacer de virer le :00.000 par un vide mais la cellule reste en texte et ne se transforme pas en date même en changeant le format de la cellule.
Donc je pense que je fais une erreur dans ma macro mais je ne vois pas où.
Ou bien il y'a peut-être une pirouette que l'un d'entre vous connait.
Donc je m'en remet à vous pour éclairer mes lanternes.
Désolé d'avoir été si long mais j'ai souhaité être le plus clair pour vous éviter de vous faire perdre du temps en cherchant à me comprendre.
Un grand merci en tout cas.
Cordialement