Export feuilles xls en csv
Bonjour à tous,
A l'heure actuelle je suis en possession d'un classeur Excel ayant plusieurs feuilles, je souhaiterai exporter ces feuilles en feuilles csv.
J'ai tenté d'établir un code mais celui-ci ne fonctionne pas, le voici :
Private Sub btnExport_Click()
Sheets("SGD").Range("B2").Value = cboContrat.Text
Sheets("SGD").Range("C2").Value = txtNom.Text
Sheets("SGD").Range("D2").Value = txtPrénom.Text
Sheets("SGD").Range("E2").Value = txtSécuritéSociale.Text
Sheets("SGD").Range("F2").Value = cboCatégorie.Text
Sheets("SGD").Range("G2").Value = CDate(txtDateNaissance.Text)
Sheets("SSI").Range("C3").Value = txtNom.Text
Sheets("SSI").Range("D3").Value = txtPrénom.Text
Sheets("SSI").Range("E3").Value = txtSécuritéSociale.Text
Sheets("SSI").Range("F3").Value = CDate(txtDateNaissance.Text)
Sheets("SSI").Range("G3").Value = cboCatégorie.Text
Sheets("SSI").Range("I3").Value = cboFonction.Text
Sheets("SSI").Range("L3").Value = cboContrat.Text
Sheets("LDR").Range("C2").Value = txtNom.Text
Sheets("LDR").Range("D2").Value = txtPrénom.Text
Sheets("LDR").Range("E2").Value = txtSécuritéSociale.Text
Sheets("LDR").Range("F2").Value = CDate(txtDateNaissance.Text)
Sheets("LDR").Range("G2").Value = cboCatégorie.Text
Sheets("LDR").Range("H2").Value = cboFonction.Text
Sheets("LDR").Range("L2").Value = cboContrat.Text
'Déclaration des variables
Dim CheminDossier As String
On Error GoTo 1
CheminDossier = "C:\Users\gbm2\Downloads"
'Enregistrement au format CSV
Sheets("SGD").ExportAsFixedFormat Type:=xlcsv, Filename:= _
CheminDossier & "Export_SGD" & ".csv", quality:= _
Sheets("SSI").ExportAsFixedFormat Type:=xlcsv, Filename:= _
CheminDossier & "Export_SSI" & ".csv", quality:= _
Sheets("LDR").ExportAsFixedFormat Type:=xlcsv, Filename:= _
CheminDossier & "Export_LDR" & ".csv", quality:= _
xlQualityStandard , includedocproperties:=True, ignoreprintareas:=False, _
from:=1, To:=2, openafterpublish:=True
1
MsgBox "Export réalisé", vbOKOnly + vbInformation, "SSI- SGD- LDR"
End Sub
En vous remerciant par avance
bonjour
cela ne marche pas... ou tu ne trouves pas les fichiers générés ???
tu as ceci :
CheminDossier = "C:\Users\gbm2\Downloads"
et ton chemin d'enregistrement + nom de fichier :
CheminDossier & "Export_SGD" & ".csv"
cela veut dire qu'il enregistre dans le dossier C:\Users\gbm2\ et sous le nom de fichier : "DownloadsExport_SGD.csv"
donc dans un premier temps il faudrait ajouter un \ à la fin de la ligne
CheminDossier = "C:\Users\gbm2\Downloads\"
Fred
EDIT
supprime le on error goto 1
pour voir le message d'erreur... si il y en a un
Bonjour fred2406,
Cela ne marche pas, j'ai une erreur de compilation...
il faudrait être un peu plus explicite...
Fred
Bon j'ai changé de fusil d'épaule...
J'essaye un nouveau code...
Private Sub btnExport_Click()
Sheets("SGD").Range("B2").Value = cboContrat.Text
Sheets("SGD").Range("C2").Value = txtNom.Text
Sheets("SGD").Range("D2").Value = txtPrénom.Text
Sheets("SGD").Range("E2").Value = txtSécuritéSociale.Text
Sheets("SGD").Range("F2").Value = cboCatégorie.Text
Sheets("SGD").Range("G2").Value = CDate(txtDateNaissance.Text)
Sheets("SSI").Range("C3").Value = txtNom.Text
Sheets("SSI").Range("D3").Value = txtPrénom.Text
Sheets("SSI").Range("E3").Value = txtSécuritéSociale.Text
Sheets("SSI").Range("F3").Value = CDate(txtDateNaissance.Text)
Sheets("SSI").Range("G3").Value = cboCatégorie.Text
Sheets("SSI").Range("I3").Value = cboFonction.Text
Sheets("SSI").Range("L3").Value = cboContrat.Text
Sheets("LDR").Range("C2").Value = txtNom.Text
Sheets("LDR").Range("D2").Value = txtPrénom.Text
Sheets("LDR").Range("E2").Value = txtSécuritéSociale.Text
Sheets("LDR").Range("F2").Value = CDate(txtDateNaissance.Text)
Sheets("LDR").Range("G2").Value = cboCatégorie.Text
Sheets("LDR").Range("H2").Value = cboFonction.Text
Sheets("LDR").Range("L2").Value = cboContrat.Text
Application.DisplayAlerts = False
ActiveWorkbook.Worksheets("SGD").Select
ActiveWorkbook.SaveAs Filename:=Export_SGD_CSV, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Worksheets("SSI").Select
ActiveWorkbook.SaveAs Filename:=Export_SSI_CSV, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close
End Sub
Mais j'ai une erreur d'exécution '1004':
Problème à moitié résolu !
En utilisant le code suivant j'ai réussi l'exportation xls en csv :
Sheets("SGD").Select
Sheets("SGD").Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\gbm2\Downloads\Export_SGD.csv", _
FileFormat:=xlCSV, CreateBackup:=False
Cependant... Lors de mon exportation, mes données sont regroupées dans une seule colonne et séparées de virgules, or c'est n'est pas ce que je désire, je voudrais que chaque colonne "garde sa place".
Des solutions ?
Bonjour
j'avais pas remarqué ce matin mais.... l'export vers un fichier csv ne peut se faire que sur un fichier xls qui ne contient qu'une seule feuille....
donc en effet l'astuce veux... que l'on face un nouveau classe avec un seul onglet... d'ou ton
Sheets("SGD").Copy
maintenant concernant tes séparateurs il te manque l'option local : true
dans ta ligne :
ActiveWorkbook.SaveAs Filename:="C:\Users\gbm2\Downloads\Export_SGD.csv", _
FileFormat:=xlCSV, CreateBackup:=False,Local:=True
tu auras un fichier avec comme séparateur de colonnes le ;
fred
Bonsoir,
Il est parfaitement possible d'exporter le contenu d'une feuille en CSV !
Cette macro exporte (dans le même répertoire) la feuille "BD" vers un fichier "BD.csv"
Plage = ("A1: R") & Dernièreligne
Sub exportCSV()
Dim sep$, Plage, OL, oC, Tmp
sep = ";"
With Worksheets("BD")
Set Plage = .Range("A1:R" & .Range("A65536").End(xlUp).Row)
End With
Open "BD.csv" 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
End Sub
A+
Bonjour Galopin...
en effet il existe plusieurs manières de faire...
Fred