Application.OnTime

David590

XLDnaute Occasionnel
Bonjour à tous,

J'ai besoin qu'une macro se répète en permanence, j'y suis arrivé avec Application.OnTime mais je n'arrive pas à stopper le chrono, il y a plein de sujet sur le net mais rien y fait, je n'arrive pas à faire ce que je souhaite, cette fonction à l'air assez particulière
J'aimerai aussi qu'il ne soit pas possible de relancer le chrono plusieurs fois lorsqu'il l'est déjà

Merci d'avance pour votre aide

Code:
Sub MaMacro()
(ici ma macro à relancer)
End Sub

Sub Chrono()
Application.OnTime Now + TimeValue("00:00:01"), "MaMacro"
End Sub

Sub StopChrono()
Application.OnTime Now + TimeValue("00:00:01"), "Chrono", , False
End Sub
 

David590

XLDnaute Occasionnel
Re : Application.OnTime

Bonsoir BOISGONTIER,

Donc dans mon cas ça serait bien le chronomètre, mais je n'arrive pas a comprendre où est mon erreur,
je n'ai plus de bug quand je lance mon StopChrono mais ça n’arrête toujours pas le chrono

Peut tu jeter un œil dans mon fichier exemple?
 

Pièces jointes

  • Chrono.xlsm
    23.1 KB · Affichages: 43
  • Chrono.xlsm
    23.1 KB · Affichages: 41

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Application.OnTime

voir PJ

Code:
Dim temps
Sub MaMacro()
  MsgBox "1"
  Chrono
End Sub

Sub Chrono()
  temps = Now + TimeValue("00:00:10")
  Application.OnTime temps, "MaMacro"
End Sub

Sub StopChrono()
 On Error Resume Next
 Application.OnTime temps, Procedure:="MaMacro", Schedule:=False
End Sub

JB
 

Pièces jointes

  • Copie de Chrono-1.xlsm
    22.6 KB · Affichages: 57
  • Copie de Chrono-1.xlsm
    22.6 KB · Affichages: 46
Dernière édition:

David590

XLDnaute Occasionnel
Re : Application.OnTime

Super, j'avais presque tout bon lol sauf que javais tous mis a l'envers ;)

Et pour interdire la relance du chrono comme j'avais demandé, ca n'est peut etre pas possible
Existe-t-il quelque chose du genre "si chrono actif alors ..." ?

Car là sur un chrono de 10sec, si je clique 3 fois sur le bouton, j'aurais 3 fois la macro toutes les 10sec !

Mais bon le plus important c’était de faire fonctionner le StopChrono

Merci encore
 

Dranreb

XLDnaute Barbatruc
Re : Application.OnTime

Bonsoir
Au StopChrono, après Application.OnTime Temps … Schedule:=False, mettez :
VB:
Temps = Empty
Mettez le aussi dans MaMacro devant l'appel à Chrono qui devra opérer pour qu'elle soit relancée.
Comme ça vous saurez s'il est actif: Le Chrono ne relancera rien si vous y faites d'abord :
VB:
If Not IsEmpty(Temps) Then Exit Sub
 
Dernière édition:

David590

XLDnaute Occasionnel
Re : Application.OnTime

Bonjour Dranreb,

Code:
Dim temps

Sub MaMacro()
  MsgBox "1"
  If Not IsEmpty(temps) Then Exit Sub
  Chrono
End Sub

Sub Chrono()
  temps = Now + TimeValue("00:00:05")
  Application.OnTime temps, "MaMacro"
End Sub

Sub StopChrono()
 On Error Resume Next
 Application.OnTime temps, Procedure:="MaMacro", Schedule:=False
 temps = Empty
End Sub

Donc comme ceci?

J'ai l'impression que ca la lance une fois, puis que ça arrête tous
 

Pièces jointes

  • Copie de Chrono-1.xlsm
    22.9 KB · Affichages: 42
  • Copie de Chrono-1.xlsm
    22.9 KB · Affichages: 42

Dranreb

XLDnaute Barbatruc
Re : Application.OnTime

Je verrais ça comme ça en fait :
VB:
Dim Temps

Sub LancerMaMacro()
If Not IsEmpty(Temps) Then Exit Sub
MaMacro
End Sub

Sub StopperMaMacro()
If IsEmpty(Temps) Then Exit Sub
Application.OnTime Temps, Procedure:="MaMacro", Schedule:=False
Temps = Empty
End Sub

Sub MaMacro()
MsgBox "1"
Temps = Now + TimeValue("00:00:05")
Application.OnTime Temps, "MaMacro"
End Sub
Mais évidemment ça ne pourrait pas empêcher un petit malin d'instaurer plusieurs cycles simultanés en lançant directement MaMacro au lieu de la lancer via LancerMaMacro.
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Application.OnTime

Bonjour à toutes et à tous,

J'ai lu votre fil.
Les classeurs que je vous joins ne sont pas de moi. Ils sont du forum et encore un grand merci.
Ils peuvent peut-être vous être utiles.

Amicalement,
Lionel,
 

Pièces jointes

  • Chrono.xls
    44 KB · Affichages: 65
  • Chrono.xls
    44 KB · Affichages: 49
  • Chrono1.xls
    36.5 KB · Affichages: 52
  • Chrono1.xls
    36.5 KB · Affichages: 50

Discussions similaires

Réponses
2
Affichages
414
Réponses
8
Affichages
633

Statistiques des forums

Discussions
312 203
Messages
2 086 181
Membres
103 152
dernier inscrit
Karibu