Bonjour à tous,
Je débute un peu en VBA et j'ai un soucis de programmation.
Voilà, je souhaite que mon fichier soit enregistré automatiquement sous un autre nom (avec la date et l'heure) dès le premier enregistrement afin de conserver une copie du fichier d'origine. Par contre à partir du second enregistrement, je souhaite que le nouveau fichier écrase le fichier précédent sans le renommer.
Voilà le code que j'ai généré jusqu'à maintenant en utilisant une variable booléenne dont la valeur est initialisée à "True" dès l'ouverture du fichier :
Mon soucis c'est que dès le premier enregistrement, après le message de confirmation, un message d'erreur apparaît et Excel ferme le fichier (en me proposant de récupérer mes données)...
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) 'définition du nom du fichier Dim nom As String nom = "Tableau Industriel_MACRO" & "_" & Format(Date, "yyyy-mm-dd") & "_" & Format(Time, "hhmmss") & ".xls" 'vérification de la variable d'enregistrement If var = True Then 'modification de la valeur de la variable d'enregistrement var = False ' Sauvegarde du fichier incluant la date et l'heure pour le premier enregistrement 'sauvegarde dans le répertoire en cours sous un nouveau nom ActiveWorkbook.SaveAs ActiveWorkbook.Path & "\" & nom 'message de validation de l'enregistrement rep = MsgBox("Votre fichier a été sauvegardé sous le nom : " & nom, vbYes + vbInformation, "Sauvegarde classeur") Else ' Sauvegarde du fichier sans modification du nom dès le second enregistrement ActiveWorkbook.Save End If End Sub
Le message qui s'affiche avant la fermeture de mon fichier est disponible en pièce jointe.
Quelqu'un peut-il m'aider à résoudre mon problème...???
Merci d'avance.
Partager