Bonjour à toutes et à tous.
Je butte sur l’utilisation de « Application.OnTime ». Je souhaite faire quelques milliers d’acquisitions toutes les 5 à 300s, en utilisant cette méthode. Mais j’obtiens une erreur ! J’ai parcouru le Forum sans trouver de solution à mon besoin. Je me suis fait un petit fichier de Test. avec 2 boutons start et stop
La première utilisation conforme à l’excellent article Publié par
myDearFriend! le 12-06-2006 (47641 lectures).
Option Explicit
Dim Tps As Date
Public Sub Tempo()
Tps = Now + TimeValue("00:00:05")
Application.OnTime Tps, "Tempo"
Sheets(1).Range("A1").Value = Format(Now, "hh:nn:ss")
End Sub
Public Sub StopTempo()
On Error Resume Next
Application.OnTime Tps, "Tempo", , False
End Sub
Cela tourne parfaitement, mais il me semble qu’on fait appel à la récursivité. Comme cela doit se répéter souvent je crains un débordement de pile.
Je l’ai réécrite sous une nouvelle forme, qui ne fonctionne pas !
Public Sub Tempo2()
Tps = Now + TimeValue("00:00:05")
Application.OnTime Tps, "Aff2"
End Sub
Public Sub Aff2()
Sheets(2).Range("A1").Value = Format(Now, "hh:nn:ss")
Tempo2
End Sub
Public Sub StopTempo2()
On Error Resume Next
Application.OnTime Tps, "Aff2", , False
End Sub
Dès la première échéance j’obtiens le message d’erreur :
Je ne comprends pas, toutes les macros sont validées.
Pourriez vous me dire ou est l’erreur ? Et comment faire sans utiliser le timer Merci beaucoup.