Sauvegarde auto

D

Denis

Guest
Salut à toutes & tous.
Comment puis-je créer une copie automatique de sauvegarde d'un fichier?
Merci de votre aide...
 
R

Robert

Guest
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
 
R

Robert

Guest
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
 
T

Ti

Guest
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.
 

Statistiques des forums

Discussions
312 939
Messages
2 093 789
Membres
105 838
dernier inscrit
TECHD