VBA Un timer une seconde tout simple

Décembre 2016


En VBA, il n'y a pas (du moins à ma connaissance) de composant Timer.
On peut en créer un très facilement.

Dans un module de feuille


Activer/ dés activer le timer : Placer un bouton sur Feuil1 et mettre le code...
Private Sub CommandButton1_Click()
    TimeOnOFF = Not TimeOnOFF
    If TimeOnOFF Then
        Smem = 0
        Timer
    End If
End Sub

Dans un module public


Public TimeOnOFF As Boolean
Public Smem As Integer

Sub Timer()
Dim VV
    If TimeOnOFF Then
        'Mettre code ici pour être exécuté toute les secondes
        Smem = Smem + 1
        If Smem = 1 Then
            Sheets("feuil1").[C1] = Time
        ElseIf Smem = 2 Then
                'Mettre code ici pour être exécuté toute les 2 secondes
            Sheets("feuil1").[C1] = Replace(Time, ":", " ")
            Smem = 0
        Else
            Smem = 0
        End If
        VV = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 1)
        Application.OnTime VV, "timer", False
    End If
End Sub

Remarque : La sub affiche l'heure avec/sans les deux points de séparation, pour éviter le mouvement du texte dans la cellule mettre la police à @Arial Unicode MS

A voir également :

Ce document intitulé «  VBA Un timer une seconde tout simple  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.