Macro pour convertir mon fichier Xls en Csv

Bonjour a tous,

J'ai un fichier .xls (qui s'appelle "FTT") dans le lequel je souhaite transformer (convertir) ses donnees en .csv sans perdre et renommer ce fichier .xls d'orgine de base.

La conversation sera journaliere et le fichier final s'appellera "Final Report"

Je viens imputer des donnees (copier coller) de colonne A a N a partir de la ligne 2.

J'ai des donnees de colonne A a N et le bouton de conversation sera en colonne P par exemple

Je souhaite une macro:

  • Lors de la conversiion du fichier en CSV que ce soit en point virgule.
  • Lors de la conversiion du fichier em CSV je ne souhaite pas avoir les 3 virgules a la fin de la 1ere ligne
  • De garder mon fichier excel d'origine de base
  • D'enregistrer le fichier final .csv dans le folder F:\XXX\INVOICES\FTT
  • D'enregistrer le fichier avec la date d'aujourdhui en auto

Pouvez-vous m'aider s'il vous plait ?

Voici le code aue j'ai deja developpe

Sub test()

ActiveWorkbook.SaveAs FileName:= _

" F:\XXX\Global report CSV \Final report.csv", FileFormat:=xlCSV, _

CreateBackup:=False

End sub

J'espere que j'ai ete assez claire. N'hesitez a me poser des questions si ce n'est pas le cas.

Merci pour tout.

Nadine

Bonsoir,

A quelques détails près, c'est la demande qu'a faite "hichem" dans ce post (https://forum.excel-pratique.com/excel/enregistrer-un-fichier-en-csv-t93096.html) donc, je te poste le code adapté à ta demande, testes et dis-moi si ça convient :

Sub Test()

    Dim Fe As Worksheet
    Dim Plage As Range
    Dim Cel As Range
    Dim Tbl() As String
    Dim Ligne As String
    Dim Dossier As String
    Dim Chemin As String
    Dim Fichier As String
    Dim I As Long
    Dim J As Long

    Dossier = "C:\mon dossier\" '<--- chemin à adapter !

    'nom du fichier avec la date du jour
    Fichier = "Final Report" & Format(Now, "dd-mm-yyyy") & ".csv"

    'full path
    Chemin = Dossier & Fichier

    'si clic sur "Non", fin de procédure !
    If MsgBox("Voulez-vous créer le fichier '" & Fichier & "' qui sera stocké dans le dossier '" & Dossier & "'?", vbQuestion + vbYesNo, "Fichier .CSV") = vbNo Then Exit Sub

    'adapter le nom de la feuille
    Set Fe = Worksheets("Feuil1")

    'défini la plage sur toute la feuille
    Set Plage = DefPlage(Fe, 1, 1)

    'crée les lignes pour les enregistrements tabulés avec comme séparateur le point-virgule
    For I = 1 To Plage.Rows.Count

        For J = 1 To Plage.Columns.Count: Ligne = Ligne & Plage(I, J).Value & ";": Next J

        'supprime le ; de fin
        Ligne = Left(Ligne, Len(Ligne) - 1)

        'stocke dans un tableau
        ReDim Preserve Tbl(1 To I)
        Tbl(I) = Ligne

        'pour la suivante
        Ligne = ""

    Next I

    'création du fichier .csv
    Open Chemin For Output As #1

        For I = 1 To UBound(Tbl): Print #1, Tbl(I): Next I

    Close #1

    'vérifie que le fichier est bien sur le disque sinon, message d'erreur
    If Dir(Chemin) <> "" Then

        'message de confirmation
       MsgBox "Le fichier '" & Fichier & "' a bien été créé et enregistré dans le dossier '" & Dossier & "' !", vbInformation

    Else

        MsgBox "Une erreur c'est produite durant la création du fichier .csv !", vbExclamation

    End If

End Sub

Function DefPlage(Fe As Worksheet, L As Long, C As Long) As Range

    On Error GoTo Fin

    With Fe

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

    End With

    Exit Function

Fin:

    Set DefPlage = Nothing

End Function
Rechercher des sujets similaires à "macro convertir mon fichier xls csv"