SLEEP

Que fait la fonction sleep ?

Sleep est une fonction non documentée qui permet de suspendre l'exécution d'une procédure
Ci-dessous les 4 solutions que je connais pour créer une temporisation

1 : tempo par boucle Inconvénient : dépend de la vitesse de la machine

    Tempo = 1000
    For zz = 1 To Tempo
    Next
  

2 : tempo par Timer
Inconvénient : pas de différence de vitesse notable en dessous de 0.05 s de tempo

    Start_V = Timer  ' Définit l'heure de début.
    Do While Timer < Start_V + 0.03
      DoEvents  ' Donne le contrôle à d'autres processus.
    Loop
 

3 : suspension du code par la fonction Sleep(nb millisecondes)
Inconvénient : pas de différence de vitesse notable en dessous de 50msec

    Sleep (1000)  ' dans le code 1000 suspend l 'exécution 1 seconde
    Sleep (100)  ' dans le code 100 suspend l 'exécution 1/10 de seconde
    Sleep (10)  ' dans le code 10 suspend l 'exécution 1/100 de seconde
  

4 : ne rien faire, ça marche aussi bien mais affichage dépend de la vitesse de la machine

Un exemple avec la fonction SLEEP pour afficher un msgbox temporairement :

 Declare sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 sub Tempo()
  Application.StatusBar = "Msg 1"
  Sleep (3000)  ' pause de 3 secondes
  Application.StatusBar = "Msg 2"
  Sleep (3000)  ' pause de 3 secondes
  Application.StatusBar = "Prêt"
 end sub

Auteur :

Mots clefs associés à cette page : ,