Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

fonction enregistrement auto

P

pl

Guest
Bonjour,

Pour des raisons de sécurité, je souhaites installer une fonction d'enregistrement automatique dans mes macros .Est ce que cette fonction existe?
Je connait enregistrement automatique qui est une macro complémentaire, mais mon fichier devant être utilisé par une cinquantaine de personne peut expérimentés, Je préfère implanter cette action dans ma macro.

Merci de votre aide
 
J

john

Guest
Salut,

Il suffit de mettre le code suivant dans la procédure de fermeture de ton fichier.

ActiveWorkbook.SaveAs Filename:= _
"C:\Mes documents\test.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

Biensur, tu peux changer le chemin d'enregistrement et le nom du fichier xls.

Pour connaitre le nom de ton fichier via le vba insère dans ta macro ce qui suit.

nom = ActiveWorkbook.Name 'ici tu récupères le nom de ton classeur actif
monchemin="c:\mes documents\" 'tu définis le chemin pour l'enregistrement

ActiveWorkbook.SaveAs Filename:= _
monchemin & nom, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

Voilà bonne journée.

John
 
P

pl

Guest
merci pour le promptitude de ta réponse

M'a question a été ma formulé, je recherches un enregistrement automatique au cours de l'utilisation du programme.Exemple tout les 15 minutes.

Merci
 
J

john

Guest
Re,

Voici comment faire pour une sauvegarde automatique toute les 15 minutes.

Tu dois mette me code dans la macro sur l'ouverture de ton fichier.

Private Sub Workbook_Open() 'macro d'ouverture de ton fichier
Start = Timer ' Définit l'heure de début.
pause = 900 '15 minutes = 900 secondes
Do
Do While Timer < Start + pause 'je boucle tant que je ne suis pas arrivé à la condition

DoEvents ' Donne le contrôle à d'autres processus.
If Timer >= Start + pause Then 'si l'heure est = ou > à l'heure de début + ta pause alors j'exécute la sauvegarde
ActiveWorkbook.Save
Start = Timer 'je ré-initialise l'heure de début
End If
Loop
Loop Until Timer < Start + pause 'je fais en sorte d'avoir une boucle infinie
End Sub

J'espère avoir pu t'aider.

John
 

Discussions similaires

Réponses
16
Affichages
787
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…