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... ou mieux donner un fichier test en ayant supprimer les données confidentielles....

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+

26bd.csv (1.68 Ko)

Bonjour Galopin...

en effet il existe plusieurs manières de faire...

Fred

Rechercher des sujets similaires à "export feuilles xls csv"