VBA - Sauvegarder copie excel en CSV automatiquement lors d'un enregistrement
Bonjour à tous,
J'aimerais créer une macro excel simple qui enregistre une copie de mon fichier excel au format CSV lorsque j'enregistre le fichier excel (.xlsm) avec un CTRL+S par exemple.
J'ai réalisé une première macro comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim chemin_export As String
Dim nom_csv As String
Dim chemin_complet As String
chemin_export = "C:\...\dossier"
nom_feuille = ThisWorkbook.Sheets(1).Name
chemin_complet = chemin_export & "\" & nom_feuille & ".csv"
'MsgBox Dir(chemin_complet)
'If Dir(chemin_complet) <> "" Then Kill (chemin_complet) Else End
ActiveWorkbook.SaveAs Filename:=chemin_complet, FileFormat:=xlCSV, CreateBackup:=False, AccessMode:=xlExclusive, ConflictResolution:=Excel.XlSaveConflictResolution.xlLocalSessionChanges
MsgBox chemin_complet & " sauvegardé en tant que CSV."
End Sub |
Toutefois quand j'exécute ce script via un CTRL+S, le message s'affiche bien, toutefois il recommence "en boucle" jusqu'à ce qu'il crash. Le CSV est néanmoins créée.
Lorsque je décommente les 2 lignes avec la fonction Dir(), le message avec le Dir() s'affiche bien mais le CSV n'est plus créée.
Par ailleurs, j'ai placé le code dans "VBAProject/Microsoft Excel Objects/ThisWorkbook".
Comment régler le problème svp ? Auriez-vous une macro tout aussi "simple" permettant de faire cette copie en CSV ?
Merci d'avance.
Bonne journée,
Olscream