application.ontime

maystreet

XLDnaute Nouveau
Bonjour,
j'ai un petit probleme avec application.ontime.

J'essaie de sauvegarder et rafraichir quotidiennement mon fichier excel.
J'utilise le code suivant:

Code:
Private Sub Workbook_Open()

    ActiveWorkbook.RefreshAll
    Application.DisplayAlerts = False
   
   Application.OnTime TimeValue("06:30:00"), "Refresh"
   
   Application.OnTime TimeValue("06:31:00"), "Save"
      
End Sub

Refresh -> raffraichir
Save-> Sauvergarder

Le probleme est que j'utilise ce code pour un fichier excel qui est laisser ouvert en permanence.

Ce que je constate est que le fichier sera sauvegarder et rafraichi le lendemain de l'ouverture du fichier mais que 2 jours apres, la sauvegarde n'est pas executer.

Je me dis que l'execution ne se fait qu'une fois et non quotidiennement.

Auriez vous une idee pour que la sauvegarde et le rafraichissement se fassent automatiquement tous les jours, tout en laissant le fichier ouvert?

Merci beaucoup pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : application.ontime

Bonjour,

A priori exécution normale puisque lancée qu'une seule fois lors de l'ouverture du classeur.... Peut être relancer la programmation de tes procédures juste avant les "end sub", ainsi elles se relanceront d'elles mêmes...

Code:
Application.OnTime Now + TimeValue("23:59:59"), "Save"

Penser également à les désactiver lors de la fermeture du classeur....

bonne journée
@+
 

maystreet

XLDnaute Nouveau
Re : application.ontime

Merci pour ta reponse pierrot,

voila ce que j'obtiens sur un exemple:

Dans "ThisWorkbook"
Code:
Private Sub Workbook_Open()

    ActiveWorkbook.RefreshAll
    Application.DisplayAlerts = False
   
   Application.OnTime TimeValue("06:30:00"), "Refresh"
   
   Application.OnTime TimeValue("06:31:00"), "Save"
   Application.OnTime TimeValue("06:32:00"), "Run"   
End Sub


Dans un des modules :

Code:
Sub Run()

Application.OnTime Now + TimeValue("00:00:10"), "Refresh"

Application.OnTime Now + TimeValue("00:01:00"), "Save"

Application.OnTime Now + TimeValue("00:01:10"), "Boucle"

End Sub
------------------------------------------------------
Sub Boucle()

Application.Run ("Run")

End Sub

En gros je rappelle la meme macro tout le temps,
l'exemple semble fonctionner.

Ma question est la suivante:

dans la macro "run" je fais appelle a la macro "run" elle meme alors que je ne suis pas sorti de la macro "run", cela va t- il me ralentir considerablement mon programme si je le laisse fonctionner trop longtemps??

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87