• Initiateur de la discussion Initiateur de la discussion Denis
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Denis

Guest
Salut à toutes & tous.
Comment puis-je créer une copie automatique de sauvegarde d'un fichier?
Merci de votre aide...
 
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
 
Salut Denis,

Je ne comprends pas ton histoire de virus. Si je t'avais envoyé une pièce jointe cela aurait pu se produire malgré ma vigilance, mais là ce n'est pas le cas. La macro ne fait qu'une copie de ton fichier puis efface les codes VBA de l'original. Vérifie si ton fichier original ne contient pas de virus.

Sinon, désolé mais je n'ai pas d'autre solution.

À plus,

Robert
 
c'est probablement parce que tu utilises l'objet VBComponents que cette alerte se produit, c'est le problème des détecteurs de virus.

Norton (mais il n'est pas le seul) s'obstine à trouver un virus dans un de mes programmes parce que j'utilise .Import et .Export et il détruit automatiquement toutes les macros du fichier !

La seule parade, c'est de désactiver temporairement la mise en quarantaine de l'anti virus.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
217
Réponses
11
Affichages
476
Réponses
12
Affichages
665
Retour