VBA et Timer

Fermé
raminagrobi - 22 nov. 2001 à 11:06
 raminagrobi - 23 nov. 2001 à 10:12
Bonjour,
En VBA, je voudrais écrire une procédure qui se déclenche automatiquement à intervalles réguliers (toutes les cinq minutes)
En VB, je sais qu'il existe pour ça le contrôle Timer. On peut aussi utiliser une fonction SetTimer de l'API WIn32. Le problème, c'est que je ne sais ni utiliser l'API Win32, ni utiliser un contrôle de VB en VBA (je dis bien A). Donc ma question :
Quelqu'un pourrait-il le conseiller sur la méthode la plus simple pour utliser un Timer sous VBA (avec une des 2 méthodes ci-dessus ou autre)
C'est très important, merci d'avance !

1 réponse

okabeche Messages postés 8 Date d'inscription mardi 20 novembre 2001 Statut Membre Dernière intervention 22 novembre 2001 4
22 nov. 2001 à 20:33
Autant que je sache TIMER fonctionne très bien sous VBA.
Voici un exemple copié de l'aide d'Excel 97:

Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Cliquez sur Oui pour effectuer une " & _
"pause de 5 secondes", 4)) = vbYes Then
PauseTime = 5 ' Définit la durée.
Start = Timer ' Définit l'heure de début.
Do While Timer < Start + PauseTime
DoEvents ' Donne le contrôle à d'autres
' processus.
Loop
Finish = Timer ' Définit l'heure de fin.
TotalTime = Finish - Start ' Calcule la durée ' totale.
MsgBox "Pause de " & TotalTime & " seconde(s)"
Else
End
End If

J'espère que cela t'aidera.
1
raminagrobi
23 nov. 2001 à 10:12
Salut okabeche,
Merci pour ta réponse. En fait ce que tu me dis n'est pas un véritable Timer : la boucle DoWhile...loop, malgré le DoEvents, consomme trop de ressources. J'ai besoin d'un Timer qui fonctionne vraiment en tâche de fond.
Renseignements pris, il est impossible de récupérer le Timer de VB.
Il est également impossible d'utiliser la fonction SetTimer de l'API en VBA.
Mais j'ai trouvé la solution : sur ce site
http://www.mvps.org/ccrp/
on trouve un Timer très performant qui fonctionne en VBA.
0