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

Exécution toutes les 24 heures

  • Initiateur de la discussion Christophe
  • Date de début
C

Christophe

Guest
Bonjour à tous,

Le code ci-dessous me permet d'exécuter du code à une certaine heure. L'heure de départ est enregistrée dans la cellule "K2"

Sub calculX(intervalSeconde As Integer)

' On va rechercher l'heure de départ qui se trouve dans la cellule B2
startTime = Application.Worksheets(1).Range("k2").Value

' On lance le calcul du X de la 1° caisse
Application.OnTime TimeValue(startTime), "XCAISSE1"

' On lance le calcul du X pour la 2° caisse 10 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde), "XCAISSE2"

' On lance le calcul du X pour la 3° caisse 20 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde * 2), "XCAISSE3"

' On lance le calcul du X pour la 4° caisse 10 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde), "XCAISSE4"

' On lance le calcul du X pour la 5° caisse 20 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde * 2), "XCAISSE5"

End Sub

Maintenant, j'aimerai bien exécuter cette macro toutes les jours à l'heure indiquée dans la cellule "K2".

Est-ce réalisable ou bien dois-je trouver un autre moyen ?

Merci d'avance pour votre aide,
Christophe
 
J

Jacques

Guest
Bonjour Christophe,
pourquoi ne pas utiliser le planificateur de tâches de Windows et mettre ton code dans une macro s'exécutant à l'ouverture du fichier.
à bientôt
 
C

Christophe

Guest
Merci pour tes infos

J'ai pensé au planificateur mais je ne sais pas comment fermer le document précédement ouvert (pour le jour suivant).

Connais-tu la syntaxe à tout hasard pour fermer un fichier Excel ? (via un script ou qqch d'autre)

Merci d'avance
Christophe.
 
J

Jacques

Guest
Bonsoir Christophe, bonsoir à tous

Effectivement, tu mets les instructions que tu veux exécuter dans la macro

Private Sub Workbook_Open()
...
instructions
...
Activeworkbook.Save (comme te le conseille sousou)
Application.Quit


End Sub

Ainsi dès que tu ouvriras ton fichier (par l'intermédiaire du planificateur), les instructions contenues dans la macro d'ouverture s'exécuteront automatiquement jusque et y compris la sauvegarde du fichier et la fermeture de l'application.

Je crois que cela devrait résoudre ton problème

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