sauvegarde

  • Initiateur de la discussion Joan
  • Date de début
J

Joan

Guest
Re-bonjour le forum

Actuellement je travaille sur un fichier et je souhaiterai une sauvegarde de ce fichier toutes les dix ou vingt minutes dans un autre repertoire tout en sauvegardant celui-ci et continuer à travailler et tout ça automatiquement
et sans boîte de message.
Merci d'avance à toutes personnes qui me viendront en aide

Joan
 
M

michel

Guest
bonsoir Joan

l'exemple ci-dessous créée des copies de sauvegardes du fichier dans un repertoire specifique

les deux premieres procedures sont à placer dans ThisWorkbook pour lancer et arreter automatiquement les macros de sauvegarde

Private Sub Workbook_Open()
Call Temporisation
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Finir
End Sub



les procedures suivantes sont à placer dans un module du fichier
dans l'exemple une copie de sauvegarde est effectuée toutes les 20 minutes ( il reste à adapter le repertoire et la periode )
si tu souhaites arreter manuellement les sauvegrades , lance la procedure "Finir"


Dim Periode As Date

Sub Temporisation()
ThisWorkbook.Save ' enregistrement du fichier
ThisWorkbook.SaveCopyAs _
Filename:="C:\Documents and Settings\excel\sauvegarde " & Format(Date, "yyyy mmmm d") & " " & Format(Time, "h mm ss") & ".xls" 'copie

Periode = Now + TimeValue("00:20:00") '20 minutes
Application.OnTime Periode, "Temporisation"

End Sub

Sub Finir()
On Error Resume Next
Application.OnTime Periode, "Temporisation", , False
End Sub



bonne soirée
michel
 
J

Joan

Guest
re -salut Michel
toutes tes macros fonctionnent bien
helas! toutes les vingt minutes un autre fichier est créé avec vingt minutesde plus
ne pourrait t-on pas enregistrer sur le meme fichier pour avoir qu'un seul fichier de sauvegarde
et avoir une cells exp: "a1" pour modifier la frequence d'enregistrement

merci encore d'avoir repondu a mom premier message
a+ sur le forum
Joan
 
M

michel

Guest
bonjour Joan

j'espere que la modification ci dessous repondra à ta demande . il n'y a plus qu'une copie de sauvegarde et les minutes sont à saisir dans la cellule A1


Sub Temporisation()
ThisWorkbook.Save

On Error GoTo fin

Application.DisplayAlerts = False
ThisWorkbook.SaveCopyAs _
Filename:="C:\Documents and Settings\michel\dossier\general\excel\sauvegarde.xls"
Application.DisplayAlerts = True

Periode = Now + TimeValue("00:" & Range("A1") & ":30")
Application.OnTime Periode, "Temporisation"

Exit Sub
fin:
If Err = 13 Then MsgBox "Le format de la cellule A1 n'est pas valide ." & Chr(10) & _
"Rappel : la valeur doit etre comprise entre 1 et 60 . " & Chr(10) & Chr(10) & _
"Modifiez la cellule A1 et relancez manuellement la procedure TEMPORISATION . "
End Sub

bonne journee
michel
 

Discussions similaires

Statistiques des forums

Discussions
312 199
Messages
2 086 160
Membres
103 148
dernier inscrit
lulu56