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

Automatiser une procedure

Clark

XLDnaute Junior
Bonjour au forum,

voici mon problème;
Je souhaiterai que mon classeur s'enregistre toutes les heures (copie de sauvegarde) et pour cela, je cherche un moyen de lancer ma procedure de sauvegarde toutes les heures à partir de l'ouverture du fichier.

J'ai bien essayé avec OnTime mais apparemment, il ne lance la procédure qu'une seule fois.

Existe-t'il une fonction permettant cela?

Merci pour votre attention.
Clark
 

tototiti2008

XLDnaute Barbatruc
Re : Automatiser une procedure

Bonjour Clark,

Je ne connais que OnTime pour ce type de lancement différé.
tu peux le faire toutes les heures si à la fin de chaque procédure lancée par le Ontime, tu programmes le prochain enregistrement 1h plus tard.
ça posera cependant un problème après la fermeture du fichier...
 

Clark

XLDnaute Junior
Re : Automatiser une procedure

Merci TotoTiti,

cela marche très bien. C'est tout simple mais encore fallait-il y penser!

Par contre, cela pose effectivement problème à la fermeture car le fichier se relance tout seul!
 

tototiti2008

XLDnaute Barbatruc
Re : Automatiser une procedure

eh oui...
alors, je te propose de stocker l'heure de la dernière planification d'enregistrement dans une variable publique, puis à la fermeture du fichier tu refait un Ontime avec l'argument Schedule:=False à l'heure prévue par ta variable.

Je ne sais pas si j'ai été clair, là ?
 

Clark

XLDnaute Junior
Re : Automatiser une procedure

Si,si très clair.
J'ai essayé de faire un ontime avec schedule à false dans le beforeclose mais cela ne marchait pas. Mais justement comme tu dit, il doit falloir lui passer la date de lancement précis de la procédure et moi je lui recollais le Now + timevalue(...)

J'essaye cela dès que possible et te tiens au courant.

Merci pour ton aide

Clark
 

Clark

XLDnaute Junior
Re : Automatiser une procedure

Rebonjour le forum,

Tototiti, j'essaye ta solution mais comme d'habitude, je ne sais jamais où il faut mettre les variables pour qu'elles soient accessibles en tout point.

J'ai une procédure de sauvegarde dans laquelle je fais un SaveCopyAs et dans laquelle j'augmente ma variable pour dire de refaire une sauvegarde x temps. Cette procédure est dans un module1

Ensuite, j'ai l'appel de OnTime avec Schedule à false dans le BeforeClose du Workbook.

J'ai essayé de mettre "public TimeToSave as String dans la section déclarations du Workbook.
Ce TimeToSave est mis à jour dans ma procédure et utilisée pour le prochaine appel OnTime.

Et ce TimeToSave est également utilisée comme variable EarliestTime du OnTime dans le beforeClose mais là, la variable est vide. Elle n'a pas conservée sa dernière valeur prise dans la procédure.

Pourrais-tu me dire comme déclarer cette variable et où la placer?

Clark
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…