Hello tout le monde,

Je souhaite exporter les N sheets d'un fichier excel
- au format csv (j'ai utilisé FileFormat:=xlCSV)
- avec un séparateur ";" (j'ai utilisé local:=True)
- (dans l'idéal mais pas mandatory) avec des doubles quotes englobant les champs (pas trouvé de solution)
- 1 csv par sheet (j'ai bouclé : For Each ws In ActiveWorkbook.Worksheets)
- les sheets soient générées dans le même répertoire que l'excel de base (j'ai setté file_path = ActiveWorkbook.Path & "\" avant de boucler sur les sheets)
- Que les fichiers soient encodés en UTF8 (pas trouvé de solution pour le forcer)
- Que le tout soit fait via le clic d'un bouton placé sur la première sheet, ou encore mieux sur un sheet qui servirait de page d'accueil. (Pas trouvé comment je pourrais exclure la sheet1, qui serait la page d'accueil, de la génération)
- Compatible excel 2013 et +

L'un de vous aurait-il un code VB sous la main ou pourrait m'aider à compléter le mien?

J'ai fait ceci , mais ça bug un peu à la génération de la feuil2. lorsque le fichier est généré il a le contenu de la feuil1. Et lorsque je ferme le fichier xlsm, il demande de re sauver le fichier feuil2.csv...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Sub saveSheetToCSV()
    Dim ws As Worksheet
    Dim file_path As String
 
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
 
    file_path = ActiveWorkbook.Path & "\"
    For Each ws In ActiveWorkbook.Worksheets
        ws.Copy
        MsgBox "PATH =" & ThisWorkbook.Path
        MsgBox "Filename =" & file_path & ActiveSheet.Name & ".csv"
        ws.SaveAs Filename:=file_path & ActiveSheet.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False, local:=True
        ActiveWorkbook.Close
    Next
End Sub
Des idées d'amélioration?

Merci d'avance pour l'aide!