XL 2010 Timer évenementiel Excel VBA

pleasewait

XLDnaute Nouveau
Bonjour,
Je cherche conseil pour créer un timer événementiel sous Excel 2010 VBA (appel à lib Windows ???)
J'ai testé le code proposé par Microsoft pour les timer sur l'aide en ligne :
Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Press Yes to pause for 5 seconds", 4)) = vbYes Then
PauseTime = 5 ' Set duration.
Start = Timer ' Set start time.
Do While Timer < Start + PauseTime
DoEvents ' Yield to other processes.
Loop
Finish = Timer ' Set end time.
TotalTime = Finish - Start ' Calculate total time.
MsgBox "Paused for " & TotalTime & " seconds"
Else
End
End If

Cela ne répond pas du tout à ce que je veux faire (évidemment) :
  • Timer événementiel
  • CPU ok
Avez-vous des idées ?

Bonne soirée à tous.
 
Solution
Suffit de reprendre le code que j'ai déjà indiqué et ajouter le lancement à l'ouverture du classeur et l'arrêt à sa fermeture. Tout ça pour en arriver là ! :cool:

Et adapter la constante Private Const TimerDurationInSeconds = 60 * 3 'Timer toutes les 3 minutes

Dranreb

XLDnaute Barbatruc
Oui, je pense que c'est mieux avec Application.OnTime.
Et il n'y a pas le même danger qu'avec un timer car c'est Excel qui décide l'exécution quand il est prêt à la supporter. Il faut refaire le Application.OnTime à la fin, il n'est pas reconduit comme le timer jusqu'à ce qu'on le détruit.
 

Dudu2

XLDnaute Barbatruc
Suffit de reprendre le code que j'ai déjà indiqué et ajouter le lancement à l'ouverture du classeur et l'arrêt à sa fermeture. Tout ça pour en arriver là ! :cool:

Et adapter la constante Private Const TimerDurationInSeconds = 60 * 3 'Timer toutes les 3 minutes
 

Pièces jointes

  • Classeur1.xlsm
    15.6 KB · Affichages: 8

pleasewait

XLDnaute Nouveau
Oui, je pense que c'est mieux avec Application.OnTime.
Et il n'y a pas le même danger qu'avec un timer car c'est Excel qui décide l'exécution quand il est prêt à la supporter. Il faut refaire le Application.OnTime à la fin, il n'est pas reconduit comme le timer jusqu'à ce qu'on le détruit.

Suffit de reprendre le code que j'ai déjà indiqué et ajouter le lancement à l'ouverture du classeur et l'arrêt à sa fermeture. Tout ça pour en arriver là ! :cool:

Et adapter la constante Private Const TimerDurationInSeconds = 60 * 3 'Timer toutes les 3 minutes
Un grand merci à Dranreb et Dudu2 et toutes mes excuses si je n'ai pas su être plus clair et plus précis dans l'expression de mon besoin mal exprimé dans ce post.
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote