VBA – Lancer un programme à une heure donnée

VBA – Lancer un programme à une heure donnée
Dernière mise à jour le 14/04/2024
Temps de lecture : < 1 minute

Le code suivant va vous permettre de lancer un programme VBA à une heure donnée.

Lancer un programme VBA à une heure donnée

Voici un code qui va lancer un programme tous les jours à 7h du matin.

Dim Lheure As Double

Public Sub LancerTimer()
    'L'application ExecutionTimer se lancera tous les jour à 7h du matin pour exécuter le programme ExecutionTimer
    Application.OnTime TimeValue("07:00:00"), "ExecutionTimer"
End Sub

'Pour arrêter le timer, il suffit d'appeler cette procédure.
Public Sub ArretTimer()
On Error Resume Next
      Application.OnTime Lheure, "ExecutionTimer", , False
End Sub

Public Sub ExecutionTimer()
      'code à exécuter à la fin de chaque appel
      'Votre code ici
      MsgBox "Bonjour"

      'Si vous voulez de nouveau relancer le programme après le même intervalle, vous pouvez ajouter cet appel récursif.
      Lheure = Now + TimeSerial(0, 0, 10)
      Application.OnTime Lheure, "ExecutionTimer"
End Sub

Lancer un programme après un délai en minutes ou secondes

Copiez simplement ce code dans un module pour lancer la procédure de test, ExecutionTimer, à chaque fois que le délai en secondes est atteint.

Dim Lheure As Double
Dim Interval As Long

Public Sub LancerTimer()
    'L'application ExecutionTimer se lancera après 0 heure, 0 minute et Interval seconde
    Interval = 10
    Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecutionTimer"
End Sub

'Pour arrêter le timer, il suffit d'appeler cette procédure.
Public Sub ArretTimer()
On Error Resume Next
      Application.OnTime Lheure, "ExecutionTimer", , False
End Sub

Public Sub ExecutionTimer()
      'code à exécuter à la fin de chaque appel
      'Votre code ici
      MsgBox "Bonjour"

      'Si vous voulez de nouveau relancer le programme après le même intervalle, vous pouvez ajouter cet appel récursif.
      Lheure = Now + TimeSerial(0, 0, 10)
      Application.OnTime Lheure, "ExecutionTimer"
End Sub

Vous trouverez des informations complémentaires sur le lancement automatique d'un programme sur le site de Microsoft.

1 Comment

  1. Mohammed Ghziel
    08/10/2020 @ 11:25

    Bonjour,

    J'ai un problème si vous pouvez m'aider, j'ai une extraction de données J'ai la date et l'heure de l'opération (du système), mon doute est de savoir comment a changé le début d'une journée le 24 heures de 6 heures du matin le jour J à 6 heures du jour J + 1, en détail : j'ai 3 équipes de 6-14, 14-22, 22-6, je veux par exemple voir le rapport de production de l'équipe 3 de la date J : alors excel donne moi le résultat suivant (à partir de 22h à 00h du jour J + de 00h à 6h du jour J + 1).

    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

VBA – Lancer un programme à une heure donnée

Reading time: < 1 minute
Dernière mise à jour le 14/04/2024

Le code suivant va vous permettre de lancer un programme VBA à une heure donnée.

Lancer un programme VBA à une heure donnée

Voici un code qui va lancer un programme tous les jours à 7h du matin.

Dim Lheure As Double

Public Sub LancerTimer()
    'L'application ExecutionTimer se lancera tous les jour à 7h du matin pour exécuter le programme ExecutionTimer
    Application.OnTime TimeValue("07:00:00"), "ExecutionTimer"
End Sub

'Pour arrêter le timer, il suffit d'appeler cette procédure.
Public Sub ArretTimer()
On Error Resume Next
      Application.OnTime Lheure, "ExecutionTimer", , False
End Sub

Public Sub ExecutionTimer()
      'code à exécuter à la fin de chaque appel
      'Votre code ici
      MsgBox "Bonjour"

      'Si vous voulez de nouveau relancer le programme après le même intervalle, vous pouvez ajouter cet appel récursif.
      Lheure = Now + TimeSerial(0, 0, 10)
      Application.OnTime Lheure, "ExecutionTimer"
End Sub

Lancer un programme après un délai en minutes ou secondes

Copiez simplement ce code dans un module pour lancer la procédure de test, ExecutionTimer, à chaque fois que le délai en secondes est atteint.

Dim Lheure As Double
Dim Interval As Long

Public Sub LancerTimer()
    'L'application ExecutionTimer se lancera après 0 heure, 0 minute et Interval seconde
    Interval = 10
    Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecutionTimer"
End Sub

'Pour arrêter le timer, il suffit d'appeler cette procédure.
Public Sub ArretTimer()
On Error Resume Next
      Application.OnTime Lheure, "ExecutionTimer", , False
End Sub

Public Sub ExecutionTimer()
      'code à exécuter à la fin de chaque appel
      'Votre code ici
      MsgBox "Bonjour"

      'Si vous voulez de nouveau relancer le programme après le même intervalle, vous pouvez ajouter cet appel récursif.
      Lheure = Now + TimeSerial(0, 0, 10)
      Application.OnTime Lheure, "ExecutionTimer"
End Sub

Vous trouverez des informations complémentaires sur le lancement automatique d'un programme sur le site de Microsoft.

1 Comment

  1. Mohammed Ghziel
    08/10/2020 @ 11:25

    Bonjour,

    J'ai un problème si vous pouvez m'aider, j'ai une extraction de données J'ai la date et l'heure de l'opération (du système), mon doute est de savoir comment a changé le début d'une journée le 24 heures de 6 heures du matin le jour J à 6 heures du jour J + 1, en détail : j'ai 3 équipes de 6-14, 14-22, 22-6, je veux par exemple voir le rapport de production de l'équipe 3 de la date J : alors excel donne moi le résultat suivant (à partir de 22h à 00h du jour J + de 00h à 6h du jour J + 1).

    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.