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 :
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.
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
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
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
Partager