Enregistrer un fichier au format CSV dans une macro

  • Initiateur de la discussion Initiateur de la discussion Painghou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Painghou

XLDnaute Nouveau
Bonjour,

Je suis sous Excel 2010.

Je dois enregistrer une feuille d'un classeur au format CSV.

Lorsque je le fait manuellement, cela fonctionne, mais si je le fais dans la macro, mon fichier se retrouve pollué de ","...

Voici les ligne que j'utilise :

Sheets("importtrace").Select
Sheets("importtrace").Move
ActiveWorkbook.SaveAs Filename:=NomFichier & ".csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True
ActiveWorkbook.Save
ActiveWindow.Close Savechanges:=True

J'ai vérifié, dans mes paramètres régionaux, il y a bien le ";" en séparateur.

Je me casse la tête sur cette macro, merci de votre aide
 
Re : Enregistrer un fichier au format CSV dans une macro

Bonsoir Painghou et bienvenue sur XLD.

C'est par-ce que tu à mis une variable(NomFichier) sans l'initialier. Il faut écrire comme ceci

Code:
Dim NomFichier, Chemin as String

Chemin = "C:\Users\Painghou\Desktop\"
NomFichier = "importtrace"

ActiveWorkbook.SaveAs Filename:=Chemin & NomFichier & ".csv", _
        FileFormat:=xlCSV, CreateBackup:=False


A+ 😎
 
Dernière édition:
Re : Enregistrer un fichier au format CSV dans une macro

Vois si ça te conviens
VB:
Option Explicit
Sub CréerFichierCSV_BD()
    Dim Plage As Range, Fichier As String, Chaine As String
    Dim L As Long, F As Integer, C As Integer
    
    NomFichier = "Mon fichier" & ".csv"     'à adapter
    Fichier = ThisWorkbook.Path & "\" & NomFichier
    
    Application.ScreenUpdating = False
    With Worksheets("feuil1")
        Set Plage = .UsedRange
        F = FreeFile()
        Open Fichier For Output As #F
        For L = 1 To Plage.Rows.Count
            Chaine = Plage.Cells(L, 1)
            For C = 2 To Plage.Columns.Count
                Chaine = Chaine & ";" & Plage.Cells(L, C)
            Next C
            Print #F, Chaine
        Next L
        Close #F
        
    End With
    Application.ScreenUpdating = True
MsgBox "Transfert terminé!"

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
3 K
Retour