Pause et reprise dans chrono
Le
Laurent brizais
Bonsoir,
J'ai modifier un chrono excistant pour insérer un bouton pause/reprise. Mais
je n'arrive pas à refaire partir le chrono la ou il s'était arrété il
repart à zéro. Exemple je lance mon chrono je met en Pause 00:00:02 54,
j'appui de nouveau sur reprise il devrait repartir de cette valeur.
ci joint le chrono http://cjoint.com/?brvNG5sqV0
Merci pour votre collaboration
Laurent
J'ai modifier un chrono excistant pour insérer un bouton pause/reprise. Mais
je n'arrive pas à refaire partir le chrono la ou il s'était arrété il
repart à zéro. Exemple je lance mon chrono je met en Pause 00:00:02 54,
j'appui de nouveau sur reprise il devrait repartir de cette valeur.
ci joint le chrono http://cjoint.com/?brvNG5sqV0
Merci pour votre collaboration
Laurent

Poser une question


Salut à toi
Je te propose de gérer le temps écoulé suite à une pause dans une
cellule par exemple A2
je modifie dans cette obtique ta macro Chrono ainsi :
Dim MsCount, Tps, Cent
DoEvents
MsCount = GetTickCount - MsStart + Range("A2")
Range("A2") = MsCount
Tps = Format(Int(MsCount + Range("A2") / 1000) / 86400, "hh:mm:ss")
Cent = MsCount Mod 100
UserForm1.Label1.Caption = Tps & " " & Format(Cent, "00")
dans laquelle je prend en considération la valeur de la cellule A2
dans le compteur de départ
La cellule A2 suit le compteur au fil de son évolution
Si je mets en pause le compteur s'arrète et la cellule A2 prend sa
valeur au moment de l'arrêt
Lors de la reprise le compteur prend la valeur 0 + la valeur A2 donc
redémarre avec la valeur obtenue à l'arret
Si je stop je force la valeur de la cellule A2 à 0 en mettant dans le
code correspondant la ligne Range ("A2") = 0 ce qui donne :
Private Sub CommandButton2_Click() 'Stop
Range("A2") = 0
EnMarche = False
TimerOff
If CheckBox1 Then
Range("A1").NumberFormat = "hh:mm:ss.00"
Range("A1").Value = Label1
End If
End Sub
De même pour le départ :
Private Sub CommandButton1_Click() 'Start
Range("A2") = 0
If EnMarche = False Then
TimerOn 10
EnMarche = True
End If
End Sub
Si donc je stop ou je démarre la cellule A2 étant à 0 le compteur
démarre à 0
On peux sans problème changer de cellule de référence
Celà devrait te convenir
Dis moi !!!
Merci pour ton aide, mais il y a un souci de format que je n'arrive pas à
resoudre, entre un format standard type 0 et format type heure 00:00:00,0
cela ce passe je crois dans le module macro au niveau du rajout de la
cellule A2
MsCount = GetTickCount - MsStart + Range("A2")
Range("A2") = MsCount
Tps = Format(Int(MsCount + Range("A2") / 1000) / 86400, "hh:mm:ss")
il y a je pense une discordance dans les formats lors de l'addition.
Mais le principe reste excellent.
A+ Laurent
Merci
On 17 jan, 21:47, "Laurent brizais"
Salut à toi
Je te propose de gérer le temps écoulé suite à une pause dans une
cellule par exemple A2
je modifie dans cette obtique ta macro Chrono ainsi :
Dim MsCount, Tps, Cent
DoEvents
MsCount = GetTickCount - MsStart + Range("A2")
Range("A2") = MsCount
Tps = Format(Int(MsCount + Range("A2") / 1000) / 86400, "hh:mm:ss")
Cent = MsCount Mod 100
UserForm1.Label1.Caption = Tps & " " & Format(Cent, "00")
dans laquelle je prend en considération la valeur de la cellule A2
dans le compteur de départ
La cellule A2 suit le compteur au fil de son évolution
Si je mets en pause le compteur s'arrète et la cellule A2 prend sa
valeur au moment de l'arrêt
Lors de la reprise le compteur prend la valeur 0 + la valeur A2 donc
redémarre avec la valeur obtenue à l'arret
Si je stop je force la valeur de la cellule A2 à 0 en mettant dans le
code correspondant la ligne Range ("A2") = 0 ce qui donne :
Private Sub CommandButton2_Click() 'Stop
Range("A2") = 0
EnMarche = False
TimerOff
If CheckBox1 Then
Range("A1").NumberFormat = "hh:mm:ss.00"
Range("A1").Value = Label1
End If
End Sub
De même pour le départ :
Private Sub CommandButton1_Click() 'Start
Range("A2") = 0
If EnMarche = False Then
TimerOn 10
EnMarche = True
End If
End Sub
Si donc je stop ou je démarre la cellule A2 étant à 0 le compteur
démarre à 0
On peux sans problème changer de cellule de référence
Celà devrait te convenir
Dis moi !!!
Rebonjour à toi
Effectivement aprés avoir comparé le fonctionnement avec et sans ma
modification les chronos ne tournent pas au même rythme
Je te propose ce code modifié pour la macro Chrono :
Dim MsCount, Tps, Cent
DoEvents
MsCount = GetTickCount - MsStart + Range("A2")
Range("A2") = MsCount
If MsCount = 0 Then
Tps = Format(Int(MsCount + Range("A2") / 1000) / 86400, "hh:mm:ss")
Else
Tps = Format(Int(MsCount / 1000) / 86400, "hh:mm:ss")
End If
Cent = MsCount Mod 100
UserForm1.Label1.Caption = Tps & " " & Format(Cent, "00")
Je pense que celà doit être nettement mieux
Dis moi !!!!
Rebonjours à toi
Il subsiste un petit dysfonctionnement qui me pousse à te proposer de
rajouter la ligne :
Me.CommandButton3.Caption = "Pause"
dans la macro Start ainsi :
Private Sub CommandButton1_Click() 'Start
Range("A2") = 0
Me.CommandButton3.Caption = "Pause"
If EnMarche = False Then
TimerOn 10
EnMarche = True
End If
End Sub
et Stop :
Private Sub CommandButton2_Click() 'Stop
Range("A2") = 0
Me.CommandButton3.Caption = "Pause"
EnMarche = False
TimerOff
If CheckBox1 Then
Range("A1").NumberFormat = "hh:mm:ss.00"
Range("A1").Value = Label1
End If
End Sub
Si tu mets en pause et que tu actives le bouton stop ou start sans
passer par Reprise l'ensemble dysfonctionne au point même de fermer
sauvagement le classeur
Ainsi tu évites ce désagrément et tout marche nickel
Dis moi !!!!
Encore merci, mais mon chrono tourne 1000 fois trops vite, dans la macro je
suis passé de /1000 à /1000000 et je ne suis pas sur de l'exactitude, as-tu
le même probléme.
Autrement la pause et reprise super.
Amicalement laurent
On 22 jan, 08:34, wrote:
Rebonjours à toi
Il subsiste un petit dysfonctionnement qui me pousse à te proposer de
rajouter la ligne :
Me.CommandButton3.Caption = "Pause"
dans la macro Start ainsi :
Private Sub CommandButton1_Click() 'Start
Range("A2") = 0
Me.CommandButton3.Caption = "Pause"
If EnMarche = False Then
TimerOn 10
EnMarche = True
End If
End Sub
et Stop :
Private Sub CommandButton2_Click() 'Stop
Range("A2") = 0
Me.CommandButton3.Caption = "Pause"
EnMarche = False
TimerOff
If CheckBox1 Then
Range("A1").NumberFormat = "hh:mm:ss.00"
Range("A1").Value = Label1
End If
End Sub
Si tu mets en pause et que tu actives le bouton stop ou start sans
passer par Reprise l'ensemble dysfonctionne au point même de fermer
sauvagement le classeur
Ainsi tu évites ce désagrément et tout marche nickel
Dis moi !!!!