Macro sauvegarde auto classeur

sososo82

XLDnaute Occasionnel
Bonjour tout le monde!

Après une longue recherche sur le forum j'ai trouvé des problèmes similaires au mien mais les réponses n'ont pas pu m'aider...

Voila, j'ai un classeur utilisé en partage avec macros, boutons, USF... et j'aimerais qu'il soit sauvegardé automatiquement toutes les deux minutes (quand je dis "sauvegarder" c'est une vrai sauvegarde: la même opération que lorsqu'on clique sur la disquette mais en auto)

J'ai pas l'option "sauvegarde auto" dans macro complémentaire.

Il faudrait utiliser un timer ç'est ça?

Merci d'avance pour vos réponses
 

job75

XLDnaute Barbatruc
Re : Macro sauvegarde auto classeur

Bonjour,

Voici 2 macros à placer dans le code de ThisWorkbook (Alt+F11 et voyez en haut à gauche) :

Code:
Private Sub Workbook_Open()
Sauvegarde
End Sub

Sub Sauvegarde()
ThisWorkbook.Save
Application.OnTime Now + TimeValue("0:2:0"), "Sauvegarde"
End Sub

Edit : si vous fermez le fichier, et pas Excel, il se rouvrira pour exécuter la macro... Mais on peut désactiver OnTime à la fermeture du fichier si nécessaire.

A+
 
Dernière édition:

sososo82

XLDnaute Occasionnel
Re : Macro sauvegarde auto classeur

Merci bien!

mais... petit problème: à chaque échéance je reçois un msgbox "impossible de trouver la macro"
A quoi est ce dû?

Edit: je n'avais pas vu ta modif...
je fais le test
 
Dernière édition:

sososo82

XLDnaute Occasionnel
Re : Macro sauvegarde auto classeur

*Argh !

Comment désactiver Ontime? parce que c'est embêtant que mon classeur s'ouvre toutes les X minutes quand Excel fonctionne....


Mais désactivation quand je quitte le classeur uniquement.

Merci
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Macro sauvegarde auto classeur

Bonjour à tous,

complément du code de job pour éviter la réouverture du classeur :


Code:
Public Temps As Date
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime Temps, "Sauvegarde", Schedule:=False
End Sub
 
Private Sub Workbook_Open()
Sauvegarde
End Sub
 
Sub Sauvegarde()
ThisWorkbook.Save
Temps = Now + TimeValue("0:2:0")
Application.OnTime Temps, "Sauvegarde"
End Sub
 

sososo82

XLDnaute Occasionnel
Re : Macro sauvegarde auto classeur

Bonjour tout le monde!

Tout d'abord un grand merci à Tototiti pour ta réponse.


Toutefois je t'avoue ne pas comprendre quelque chose:
Tout d'abord je n'arrive pas à faire fonctionner ton code: soit l'enregistrement fonctionne mais le classeur se ré-ouvre à échéance, soit il ne passe rien et le classeur ne s'ouvre pas...

De plus à chaque échéances l'enregistrement se produit plusieur fois d'affillées!

J'ai placé sub sauvegarde dans un module et tout le reste dans Thisworkbook

Est ce normal???

Merci d'avance pour votre aide.
 

sososo82

XLDnaute Occasionnel
Re : Macro sauvegarde auto classeur

Merci bien pour vos coups de main!

Je pense savoir d'ou viens mon problème : en fait j'ai dans mon programme un bouton sauvegarder et quitter (pour faliciter ces deux opérations et faire 2 en 1)

qui a ce code dans un autre module :

Option Explicit

Sub svg()

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

J'ai remarqué que en suivant vos conseil et en quittant mon fichier par ce bouton le classeur s'ouvre tout seul ensuite à l'échéance, toutefois lorsque je quitte avec la croix "fermer" de EXCEL ça me met un message d'erreur VBA qui en cliquant sur "fin" s'enlève et le classeur ne se ré-ouvre plus.

Mon bouton ne marche plus alors à cause du nouveau code?
 

job75

XLDnaute Barbatruc
Re : Macro sauvegarde auto classeur

Re,

Quand la macro de votre bouton s'exécute, l'instruction ActiveWorkbook.Close ferme le classeur, et la macro BeforeClose ne s'exécute pas, c'est normal.

Il faut donc écrire pour cette macro :

Code:
Sub svg()
Application.OnTime Temps, "Sauvegarde", Schedule:=False
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

A+
 

Statistiques des forums

Discussions
312 231
Messages
2 086 447
Membres
103 213
dernier inscrit
Poupoule