Ecriture fichier csv avec ; comme spérateur

Bonjour,

Y a t'il moyen de générer un fichier csv en une seule instruction avec le point-virgule comme séparateur.

Ceci le génère avec la virgule ...

ActiveWorkbook.SaveAs Filename:="MonFichier", FileFormat:=xlCSV

Bonjour,

si dans tes paramètres régionaux, le séparateur de listes est bien le point virgule, il suffit de rajouter :

    ActiveWorkbook.SaveAs Filename:="MonFichier", FileFormat:=xlCSV, Local:= True

Peut-être?

Bon dimanche

cousinhub a écrit :

Peut-être?

Salut cousinhub,

merci pour la suggestion

dans mon cas il m'a quand même mis des virgules

rogntudju

Re-,

Pour ma part, si j'enregistre avec ce code, et que j'ouvre le fichier csv avec le bloc-notes, j'ai bien les ;

Et dans mes paramètres régionaux, c'est bien le ; comme séparateur de listes...

????

param

Bonjour,

je n'ai malheureusement pas (encore) trouvé cette option, je suis en XL2013

Bonjour Steelson et cousinhub,

Stelson, ce sont des paramètres windows.

J'ai windows 10. Pour moi, les réglages des paramètres régionaux se font:

parametres w10

suite:

formats regionaux

et ensuite"paramètres supplémentaires"

Est-ce que ça t'aide?

Cordialement,

Merci de m'avoir dirigé ... mais il était déjà à; !!!

capture d ecran 72

bonjour

voila une macro pour export CSV

elle fonctionne sur toutes version excel

  • Sub ExportCSV()
    Application.ScreenUpdating = False
    Nom = "Test"
    Ext = ".csv"
    Fichier = Nom & Ext
    Chemin = ActiveWorkbook.Path & Application.PathSeparator
    CheminFiche = Chemin & Fichier
    Sep = ";"
    Nlig = Cells(Rows.Count, 1).End(xlUp).Row
    Set Plage = Range("A1:C" & Nlig) ' Plage a changer
    Open CheminFiche For Output As #1
    For Each Lig In Plage.Rows
    Ligne = ""
    For Each Cel In Lig.Cells
    Ligne = Ligne & CStr(Cel.Text) & Sep
    Next
    Print #1, Ligne
    Next
    Close
    Set Plage = Nothing
    Application.ScreenUpdating = True
    MsgBox "Terminer"
    End Sub

A+

Maurice

Merci Maurice,

néanmoins ma question était

Steelson a écrit :

Bonjour,

Y a t'il moyen de générer un fichier csv en une seule instruction avec le point-virgule comme séparateur.

Ceci le génère avec la virgule ...

ActiveWorkbook.SaveAs Filename:="MonFichier", FileFormat:=xlCSV

Bonjour,

Comme archer je ne répond pas pil poil à la demande (une boucle est nécessaire pour mettre les données dans un String) mais à voir si ça peut aider :

Sub FichierCSV()

    Dim Plage As Range
    Dim Dossier As String
    Dim Fichier As String
    Dim I As Long
    Dim J As Long
    Dim Texte As String

    Dossier = "C:\Mon dossier\"
    Fichier = "Test.csv"

    'défini la plage sur toute la feuille
    With ActiveSheet

        Set Plage = .Range(.Cells(1, 1), _
                    .Cells(.Cells.Find("*", .[A1], -4123, , _
                    1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                    2, 2).Column))

    End With

    For I = 1 To Plage.Rows.Count

        For J = 1 To Plage.Columns.Count

            Texte = Texte & Plage(I, J).Value & ";"

        Next J

        'ligne suivante
        Texte = Texte & vbCrLf

    Next I

    'création du fichier .csv
   Open Dossier & Fichier For Binary Access Write As #1: Put #1, , Texte: Close #1

End Sub

Re,

Une nouvelle idée, avec une copie et récup du presse-papier avec remplacement des tabulations par le point-virgule donc, sans boucle mais toujours avec plusieurs lignes d'instruction :

Sub FichierCSV()

    'activer la référence "Microsoft Forms 2.0 Object Library." ou ajouter un formulaire (la référence sera automatiquement ajoutée)
    Dim PP As New DataObject

    Dim Plage As Range
    Dim Dossier As String
    Dim Fichier As String
    Dim Texte As String

    Dossier = "C:\Mon dossier\"
    Fichier = "Test.csv"

    'défini la plage sur toute la feuille
    With ActiveSheet

        Set Plage = .Range(.Cells(1, 1), _
                    .Cells(.Cells.Find("*", .[A1], -4123, , _
                    1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                    2, 2).Column))

    End With

    Plage.Copy

    With PP

        .GetFromClipboard
        Texte = .GetText(1)

    End With

    Texte = Replace(Texte, vbTab, ";")

    'création du fichier .csv
    Open Dossier & Fichier For Binary Access Write As #1: Put #1, , Texte: Close #1

End Sub
Rechercher des sujets similaires à "ecriture fichier csv comme sperateur"