Chronomètre et interaction

Bonjour,

Dans un fichier Excel j'ai intégré un chronomètre avec bouton Start Stop Reset et les fonctions associées:

Private Sub START_TIMER()

If Worksheets("Game").Cells(7, 53) = "Stopped" Then
    s = "00:" & Format(Worksheets("Game").Cells(4, 53), "00") & ":" & Format(Worksheets("Game").Cells(5, 53), "00")
Else
    s = "00:" & Format(Worksheets("Game").Cells(1, 53), "00") & ":" & Format(Worksheets("Game").Cells(2, 53), "00")
End If

Worksheets("Game").Cells(7, 53) = "Started"
EndTime = Now + TimeValue(s)

Worksheets("Game").Cells(12, 4) = s

x:
VBA.DoEvents
    If Worksheets("Game").Cells(7, 53) = "Stopped" Then Exit Sub
    CurrentTime = Now
    Diffm = Int(DateDiff("s", CurrentTime, EndTime) / 60)
    diffs = DateDiff("s", CurrentTime, EndTime) - Diffm * 60

    Worksheets("Game").Cells(4, 53) = Diffm
    Worksheets("Game").Cells(5, 53) = diffs
    s = "00:" & Format(Diffm, "00") & ":" & Format(diffs, "00")

    Worksheets("Game").Cells(12, 4) = s

    End If

GoTo x

End Sub

Private Sub STOP_TIMER()

Worksheets("Game").Cells(7, 53) = "Stopped"

End If

End Sub

Private Sub RESET_TIMER()

Worksheets("Game").Cells(7, 53) = "Over"
s = "00:" & Format(Worksheets("Game").Cells(1, 53), "00") & ":" & Format(Worksheets("Game").Cells(2, 53), "00")
Worksheets("Game").Cells(12, 4) = s
Worksheets("Game").Cells(12, 4).Interior.ColorIndex = 2
Worksheets("Game").Cells(12, 4).Font.ColorIndex = 1

End Sub

Il fonctionne bien. L'ennui c'est que dès que j'intéragis sur la feuille Excel (pour écrire un truc dans une cellule par exemple), il s'arrête, et quand je rappuie sur Start et agit comme le bouton Reset.

Vous savez ce que je peux faire pour éviter ça? Merci d'avance des retours.

Bonsoir,

en règle général, le fait d'entrer dans une cellule pour y inscrire une donnée quelconque stoppe le fonctionnement du VBA.

Comme votre chronomètre est basé sur une boucle VBA, malgré le DoEvents, celui-ci s'arrête, l'action Reset en appuyant sur Start est certainement du au valeur dans les cellules "mémoires" qui ne correspondent pas aux valeurs qui doivent s'y trouver suite à un "Stop" réglementaire...

Pour votre chrono, il faudrait peut être passer par un Application.Ontime, mais celui-ci a une précision de la seconde... Mais je crois bien qu'il tourne malgré les saisies.

@ bientôt

LouReeD

Rechercher des sujets similaires à "chronometre interaction"