Besoin de sauvegarde en ".csv" et non "xls"
Bonjour,
La macro dont le code sera présenté effectue pour chaque fichier du dossier "Dossier" les operations suivantes:
Prenons une cellule A1 d'un des fichiers A1= 9,48,39,1.175e+005,0.194,-0.334
La macro transforme le 1.175e+005 en 11750 puis éclate la cellule de telle manière à ce que "9" soit dans une colonne , "48" soit dans une autre colonne ... "-0.334" soit dans la dernière colonne. Le résultat est sauvegardé en ".xls" pour justement conserver la mise en forme (chaque valeur dans une colonne).
J'ai besoin que le fichiers soit sauvegardé en .csv.
J'ai tout esseyé mais je n'y parviens pas.
J'ai tenté ".SaveAs Replace(.FullName, ".csv", ".csv"), xlWorkbookNormal" mais à l'ouverture du fichiers Excel m'indique que l'extension .csv n'est pas l'extension d'origine du fichier.
J'éspère que vous pourrez m'aider.
Je vous remercie infiniment pour le temps et l'attention accordés à ce problème.
Voici le code de la macro
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
Sub TRANSFORM()
Dim FolderName As String, FName As String
Dim Wbk As Workbook
Dim LastLig As Long
Application.ScreenUpdating = False
FolderName = "C:\Users\SONY\Desktop\Dossier\"
FName = Dir(FolderName & "*.csv")
Do While Len(FName)
Set Wbk = Workbooks.Open(FolderName & FName)
With Wbk
With .Worksheets(1)
LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A1:A" & LastLig).TextToColumns Destination:=.Range("A1"), Comma:=True
.Range("A1:F" & LastLig).NumberFormat = "General"
.Range("G1:G" & LastLig) = 0
.Rows(1).Insert
.Range("A1:G1").Value = Array("Att1", "Att2", "Att3", "Att4", "Att5", "Att6", "Class")
End With
Application.DisplayAlerts = False
.SaveAs Replace(.FullName, ".csv", ".xls"), xlWorkbookNormal
Application.DisplayAlerts = True
.Close False
End With
Set Wbk = Nothing
FName = Dir
Loop
End Sub |