Bonsoir Denis, bonsoir le forum,
Voici une macro à placer dans le composant ThisWorkbook de ton projet VBA. Pour cela, copie la macro ci-dessous, puis ouvre le fichier excel dans lequel tu veux la coller. [Alt]+[F11] pour ouvrir Visual Basic Editor. Dans le premier cadre de gauche, Project-VBAProject, double clique sur le composant ThisWorkbook. Dans le grand cadre blanc à droite colle le code. [Alt]+[F11] pour revenir à Excel et sauver ton fichier avec la macro.
Maintenant cette macro se produira à la fermeture du fichier. Elle enregistrera une copie nommée "sauvegarde de " + le nom de ton fichier.
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'à la fermeture du classeur
Dim chem As String 'déclare la variable chem
Dim nom As String 'déclare la variable nom
Dim x As Long 'déclare la variable x
chem = ThisWorkbook.Path & "\" 'définit la variable chem (chemin d'accès à ce fichier)
nom = ThisWorkbook.Name 'définit la variable nom (nom de ce fichier)
Application.DisplayAlerts = False 'empêche les messages Excel
ThisWorkbook.SaveAs chem & "sauvegarde de " & nom 'enregistre le fichier sous "Sauvegarde de ..."
'définit la varaible x (nombre de lignes du code VBA)
x = ActiveWorkbook.VBProject.VBComponents("Thisworkbook").CodeModule.CountOfLines
'supprime les lignes de code VBA dans la copie de sauvegarde
ActiveWorkbook.VBProject.VBComponents("Thisworkbook").CodeModule.DeleteLines 1, x
ActiveWorkbook.Close savechanges:=True 'sauve et ferme la capie de sauvegarde
Application.DisplayAlerts = True 'réaffiche les messages excel
End Sub
À plus,
Robert