Problème inversion date EXCEL (+ conversion csv)
Résolu
cruxifer
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voilà mon problème :
Excel a un problème de dates, ok.
J'ai une macro qui m'exporte un fichier Excel en csv automatiquement (après avoir fait pleins de trucs dessus).
Mon problème est que ma macro qui travaille mes données est lourde et qu'elle n'est pas parfaitement adaptée à tous les fichiers sur lesquels je travaille (je peux pas faire mieux, je suis pas un pro en vba). Bref.
Dans mon fichier CSV j'ai une date en 2ème colonne, qui doit être sous format "yyyy-mm-dd". Ca c'est ok. Sauf que niais que je suis, dans la joie j'ai fait toutes les exportations en 3h et quelques, et là : mes mois et mes jours sont inversés 4 lignes sur 5...
Personne ne sait comment on stoppe ça ? J'en peux plus de ce problème.
Mon code de conversion de date + exportation en csv:
EDIT: Précision du langage dans la coloration syntaxique.
voilà mon problème :
Excel a un problème de dates, ok.
J'ai une macro qui m'exporte un fichier Excel en csv automatiquement (après avoir fait pleins de trucs dessus).
Mon problème est que ma macro qui travaille mes données est lourde et qu'elle n'est pas parfaitement adaptée à tous les fichiers sur lesquels je travaille (je peux pas faire mieux, je suis pas un pro en vba). Bref.
Dans mon fichier CSV j'ai une date en 2ème colonne, qui doit être sous format "yyyy-mm-dd". Ca c'est ok. Sauf que niais que je suis, dans la joie j'ai fait toutes les exportations en 3h et quelques, et là : mes mois et mes jours sont inversés 4 lignes sur 5...
Personne ne sait comment on stoppe ça ? J'en peux plus de ce problème.
Mon code de conversion de date + exportation en csv:
Dim newWS As Worksheet 'Fait référence à la feuille a_extraire qui servira à la création du fichier csv Dim directory As String '[/contents/234-cvs-introduction Répertoire de travail] Dim nom_fichier As String 'Nom du fichier csv Dim nbRow_x As Integer 'Nombre de lignes à exporter Dim nbCol_x As Integer 'Nombre de colonnes à exporter Dim Plage As Object, oL As Object, oC As Object, [/contents/452-fichier-tmp Tmp] As String, Sep$ 'Variables servant à la création du fichier csv With newWS 'Conversion de la date au format aaaa-mm-jj .Columns("B:B").NumberFormatLocal = "aaaa-mm-jj;@" .Columns("B:B").FormulaLocal = Columns("B:B").Value End With '_____________________________________________________________ '-----------------------Création du fichier CSV-------------------- nbRow_x = newWS.UsedRange.Rows.Count 'Nombre de lignes de la feuille a_exporter nbCol_x = newWS.UsedRange.Columns.Count 'Nombre de colonnes de la feuille a_exporter nom_fichier = directory & "\csv\CSV_" & Application.Workbooks.Item(1).Name & ".csv" 'Nom du fichier créé de facon auto Sep = ";" Set Plage = newWS.Range(newWS.Cells(1, 1), newWS.Cells(nbRow_x, nbCol_x)) 'Sélection de la plage à exporter 'Ecriture du csv Open nom_fichier For Output As #1 For Each oL In Plage.Rows Tmp = "" For Each oC In oL.Cells Tmp = Tmp & CStr(oC.Text) & Sep Next Print #1, Tmp Next Close MsgBox "Exportation au format .csv réussie"
EDIT: Précision du langage dans la coloration syntaxique.
A voir également:
- Problème inversion date EXCEL (+ conversion csv)
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Nombre de jours entre deux dates excel - Guide
1 réponse
Bonjour,
lignes a supprimer:
code pour ecriture fichier CSV:
A+
lignes a supprimer:
With newWS 'Conversion de la date au format aaaa-mm-jj .Columns("B:B").NumberFormatLocal = "aaaa-mm-jj;@" .Columns("B:B").FormulaLocal = Columns("B:B").Value End With
code pour ecriture fichier CSV:
'Ecriture du csv Open nom_fichier For Output As #1 For Each oL In Plage.Rows TMP = "" N_Col = 1 For Each oC In oL.Cells If N_Col <> 2 Then TMP = TMP & CStr(oC) & Sep Else 'formatage date:aaaa-mm-jj DatC = Right(oC, 4) & "-" & Mid(oC, 4, 2) & "-" & Left(oC, 2) TMP = TMP & DatC & Sep End If N_Col = N_Col + 1 Next oC Write #1, TMP Next oL Close MsgBox "Exportation au format .csv réussie"
A+
Exemple : "10-S-P1;2014-01-06;2;"
Comment je les enlève ? Parce que sur l'ancien code je ne les avais pas...