46 votes

Existe-t-il un équivalent de Thread.Sleep () dans VBA?

Existe-t-il un équivalent de Thread.Sleep() dans Access VBA?

63voto

Otávio Décio Points 44200
 Declare Sub Sleep Lib "kernel32" Alias "Sleep" _
(ByVal dwMilliseconds As Long)
 

Utilisez la syntaxe suivante pour appeler la fonction Sleep:

 Sub Sleep()
Sleep 1000 'Implements a 1 second delay
End Sub 
 

8voto

DontFretBrett Points 539

Une autre manière sans utiliser kernel32:

 Dim started As Single: started = Timer

Do: DoEvents: Loop Until Timer - started >= 1
 

7voto

The Data Brewer Points 46

Toutes les autres méthodes permettant d’attendre Excel ont pour résultat que Excel cesse de répondre. La solution pour faire attendre Excel tout en garantissant une interface utilisateur réactive consiste à appeler ce sous-serveur wait avec le nombre de secondes à attendre.

     Sub Wait(seconds As Integer)
      Dim now As Long
      now = Timer()
      Do
          DoEvents
      Loop While (Timer < now + seconds)
    End Sub
 

6voto

Quelques amendements sont nécessaires pour que le code fonctionne. Le code ci-dessous est la version corrigée.

 Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Sub SleepVBA() 
Sleep 1000 'Implements a 1 second delay 
End Sub 
 

4voto

Gaffi Points 2741

- Je l'utiliser dans Excel et il fonctionne très bien:

Application.Wait DateAdd("s", 1, Now())

DateAdd() est une fonction définie une fois, par rapport à l' Now() (dans ce cas vous pouvez utiliser d'autres valeurs que votre argument), "s" est la mesure de temps (secondes, dans ce cas), et l'incrément est 1. Donc, ici, l'appel de la fonction est de dire la demande d'attendre 1 seconde.

Voir aussi pour plus de détails sur l'utilisation de l' DateAdd fonction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X