Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

time, timer, sleep, wait

4 réponses
Avatar
Tatanka
Bonjour, Bonjour,

Voici quatre macros qui permettent une pause de 5 secondes
en utilisant des codes différents.
Une méthode est-elle préférable à une autre ?
Quel est votre méthode préférée ?
Il y en a d'autres ?

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub arret1()
t = Timer
Do While Timer <= t + 5
DoEvents
Loop
MsgBox Timer - t
End Sub

Sub arret2()
t = Timer
Do Until Timer - t >= 5
DoEvents
Loop
MsgBox Timer - t
End Sub

Sub arret3()
t = Timer
Sleep (5000)
MsgBox Timer - t
End Sub

Sub arret4()
t = Time
attente = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 5)
Application.Wait attente
MsgBox Format(Time - t, "hh:mm:ss")
End Sub

Serge

4 réponses

Avatar
Daniel.C
Bonjour.
Les fonctions "sleep" et "wait" ne consomme pas (ou très peu) de CPU.
Daniel

"Tatanka" a écrit dans le message de news:

Bonjour, Bonjour,

Voici quatre macros qui permettent une pause de 5 secondes
en utilisant des codes différents.
Une méthode est-elle préférable à une autre ?
Quel est votre méthode préférée ?
Il y en a d'autres ?

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub arret1()
t = Timer
Do While Timer <= t + 5
DoEvents
Loop
MsgBox Timer - t
End Sub

Sub arret2()
t = Timer
Do Until Timer - t >= 5
DoEvents
Loop
MsgBox Timer - t
End Sub

Sub arret3()
t = Timer
Sleep (5000)
MsgBox Timer - t
End Sub

Sub arret4()
t = Time
attente = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 5)
Application.Wait attente
MsgBox Format(Time - t, "hh:mm:ss")
End Sub

Serge



Avatar
Tatanka
Bonjour,

Là je crois que je demande l'impossible mais sait-on jamais !
Est-ce possible de faire en sorte que le Sleep soit disponible
pour toutes mes macros sans que je sois obligé d'écrire :
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
au début d'un module ?

Serge
Avatar
JB
Bonsoir,

Arret1 et Arret2 ne sont pas bloquant

JB

On 18 avr, 16:56, "Tatanka" wrote:
Bonjour, Bonjour,

Voici quatre macros qui permettent une pause de 5 secondes
en utilisant des codes différents.
Une méthode est-elle préférable à une autre ?
Quel est votre méthode préférée ?
Il y en a d'autres ?

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub arret1()
    t = Timer
    Do While Timer <= t + 5
        DoEvents
    Loop
    MsgBox Timer - t
End Sub

Sub arret2()
    t = Timer
    Do Until Timer - t >= 5
        DoEvents
    Loop
    MsgBox Timer - t
End Sub

Sub arret3()
    t = Timer
    Sleep (5000)
    MsgBox Timer - t
End Sub

Sub arret4()
    t = Time
    attente = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 5)
    Application.Wait attente
    MsgBox Format(Time - t, "hh:mm:ss")
End Sub

Serge


Avatar
Philippe.R
Bonjour,
A tout hasard, as tu essayé d'intégrer l'instruction dans la procédure Open
de ThisWorkbook ?
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Tatanka" a écrit dans le message de
news:%
Bonjour,

Là je crois que je demande l'impossible mais sait-on jamais !
Est-ce possible de faire en sorte que le Sleep soit disponible
pour toutes mes macros sans que je sois obligé d'écrire :
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
au début d'un module ?

Serge