Option Explicit
Dim HeureExecution As Double, Interval As Long
' Pour Amorcer le Timer toutes les x secondes
Private Sub Lancer(ByVal NbSecondes As Long)
Interval = NbSecondes
Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecuterTimer"
End Sub
' Pour Stopper le Timer
Private Sub Arreter()
On Error Resume Next
Application.OnTime HeureExecution, "ExecuterTimer", , False
End Sub
' Lancer toutes les x secondes
'
'Now : Renvoie une valeur de type Variant (Date) indiquant la date et l'heure en cours
' fournies par la date et l'heure système de votre ordinateur.
'OnTime : Cette méthode programme l'exécution d'une procédure à un moment précis
' (soit à une heure précise soit après l'écoulement d'un délai précis).
'TimeSerial : Renvoie une valeur de type Variant (Date) contenant une heure précise (heure, minute et seconde)
Private Sub ExecuterTimer()
' Ici on affiche un msg toutes les 10 s
MsgBox "Coucou", vbOKOnly, "Timer"
HeureExecution = Now + TimeSerial(0, 0, Interval)
Application.OnTime HeureExecution, "ExecuterTimer"
End Sub
' Auto_Open s'exécute automatiquement à l'ouverture du classeur
' ici on amorce le Timer toutes les 10 s
Private Sub Auto_open()
Lancer (10)
End Sub
|