Changement de date + heure (hh:mm:ss:000) avec macro

  • Initiateur de la discussion Initiateur de la discussion jom007
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jom007

XLDnaute Nouveau
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
 
Re : Changement de date + heure (hh:mm:ss:000) avec macro

Merci beaucoup pour votre réponse rapide.

Effectivement, c'est une piste très intéressante qui résoud presque mon problème.

Par contre, je n'arrive pas à faire la macro correspondante.

J'utilise l'enregistreur de macro (je suis novice), et quand je copie colle la macro dans la mienne, il ne se passe rien. Il doit manquer un petit truc à mon avis:

la macro:
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True

Merci beaucoup;

Jeremy
 
Re : Changement de date + heure (hh:mm:ss:000) avec macro

Re,

pour convertir une plage de cellules dont le séparateur décimale des données source est un point :
Code:
Range("A1:A10").TextToColumns Destination:=Range("A1"), DecimalSeparator:="."
 
Dernière édition:
Re : Changement de date + heure (hh:mm:ss:000) avec macro

Re,

pour la date, si format donnés source "Format de date jour, mois, année"

Code:
Columns(1).TextToColumns Destination:=Range("A1"), fieldinfo:=xlDMYFormat

Code:
DecimalSeparator:="."
la valeur de l'argument "DecimalSeparator" représente le séparateur de décimale utilisé dans les données source....
 
Re : Changement de date + heure (hh:mm:ss:000) avec macro

Je ne comprends pas très bien en fait.

Quand je passe par la barre de menu, je peux changer le format de la date, je peux également convertir des données, mais en passant par des macros, ça ne marche pas.
Vous semblez détenir la solution mais je n'arrive pas à l'appliquer.
 
Re : Changement de date + heure (hh:mm:ss:000) avec macro

Re,

car mon importation des données sources ne peut se faire

pourquoi ? tu ne peux pas ouvrir le csv en question via vba en utilisant la méthode "opentext" ? tu as aussi l'importation des données par Excel => barre de menu => données => Données externes => importer des donées....
 
Re : Changement de date + heure (hh:mm:ss:000) avec macro

En fait je peux,
disons que je ne l'ai jamais tenté,

mais je me suis dit qu'avec les 75 colonnes, et les différents TAG qui composent l'intitulé des colonnes de mon fichier, différencier les points, des virgules et compagnie allait chambouler mon tableau et je crois que c'est un peu ce qu'il se passe en essayant votre solution.

Non ?
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
105
Réponses
3
Affichages
151
  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
245
Réponses
6
Affichages
299
Réponses
6
Affichages
280
Retour