sauvegarder un fichier en .csv ou.txt

yaka

XLDnaute Occasionnel
Bonjour

Ma version : excel 2003,

J'ai un fichier excel avec 5 colonnes : 3 colonnes en format texte, 2 colonnes numériques

je souhaite enregistrer automatiquement ce fichier en .csv avec ";" comme séparateur des colonnes et "," comme séparateur des décimales.

Quel est le code à écrire?

Merci
Y+
 

yaka

XLDnaute Occasionnel
Re : sauvegarder un fichier en .csv ou.txt

j'utilise le code suivant :

ActiveWorkbook.SaveAs Filename:= NomduFichier _
, FileFormat:=xlCSV, CreateBackup:=False


Quand je mets mon séparateur des décimales (via panneau de configuration > option régionales) en "." j'ai, quand j'édite (via Bloc-notes) le fichier, le bon résultat
par exemple :

ENT1;ENT2;ENT3;ENT4;ENT5
aaa1;bbb1;ccc1;;1.00;
aaa2;bbb2;ccc2;3.00;;
aaa3;bbb3;ccc3;;;

Par contre quand je mets le séparateur des décimales en "," j'ai alors un mauvais résultat :
par exemple :

ENT1;ENT2;ENT3;ENT4;ENT5
"aaa1;bbb1;ccc1;;1.00;"
"aaa2;bbb2;ccc2;3.00;;"
aaa3;bbb3;ccc3;;;

il y a un ajout de " sur les lignes qui contiennent des valeurs numériques???

Comment y remédier?

par avance merci.
 

Raja

XLDnaute Accro
Re : sauvegarder un fichier en .csv ou.txt

Bonjour,

Essaye ce code suivant en rajoutant un petit bout :

Code:
ActiveWorkbook.SaveAs Filename:="NomduFichier", FileFormat:=xlCSV, local:=False
 
Dernière édition:

mromain

XLDnaute Barbatruc
Re : sauvegarder un fichier en .csv ou.txt

bonjour yaka, Raja

voici une autre solution qui j'espère te conviendra.

Code:
Public Const separator As String = ";"

Sub exportCsv()

Dim myFso
Dim csvFile
Dim csvFileName As String, curRow As Integer, curColumn As Integer, csvLine As String

csvFileName = Application.GetSaveAsFilename(FileFilter:="CSF File, *.csv")

Set myFso = CreateObject("Scripting.FileSystemObject")
Set csvFile = myFso.CreateTextFile(csvFileName)

With ThisWorkbook.Sheets("Feuil1")
    For curRow = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
        csvLine = vbNullString
        For curColumn = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Column
            csvLine = csvLine & IIf(csvLine = vbNullString, vbNullString, separator) & .Cells(curRow, curColumn).Text
        Next curColumn
        csvFile.WriteLine csvLine
    Next curRow
End With

csvFile.Close
Set csvFile = Nothing
Set myFso = Nothing
End Sub

a+
 

yaka

XLDnaute Occasionnel
Re : sauvegarder un fichier en .csv ou.txt

bonjour yaka, Raja

voici une autre solution qui j'espère te conviendra.

Code:
Public Const separator As String = ";"

Sub exportCsv()

Dim myFso
Dim csvFile
Dim csvFileName As String, curRow As Integer, curColumn As Integer, csvLine As String

csvFileName = Application.GetSaveAsFilename(FileFilter:="CSF File, *.csv")

Set myFso = CreateObject("Scripting.FileSystemObject")
Set csvFile = myFso.CreateTextFile(csvFileName)

With ThisWorkbook.Sheets("Feuil1")
    For curRow = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Row
        csvLine = vbNullString
        For curColumn = 1 To .Cells.SpecialCells(xlCellTypeLastCell).Column
            csvLine = csvLine & IIf(csvLine = vbNullString, vbNullString, separator) & .Cells(curRow, curColumn).Text
        Next curColumn
        csvFile.WriteLine csvLine
    Next curRow
End With

csvFile.Close
Set csvFile = Nothing
Set myFso = Nothing
End Sub

a+



wonderful! c'est exactement ça. UN GRAND MERCI.
 

Discussions similaires