DoEvents, fonction

Suspend l’exécution pour que le système d’exploitation puisse traiter d’autres événements.

Syntaxe

DoEvents( )

Remarques

La fonction DoEvents renvoie un entier qui représente le nombre de formulaires ouverts dans une version autonome de Visual Basic, comme la version professionnelle de Visual Basic. DoEvents renvoie zéro dans toutes les autres applications.

DoEvents cède le contrôle au système d’exploitation. Lorsque ce dernier à fini de traiter les événements de la file d’attente et que toutes les clés de la file d’attente SendKeys ont été envoyées, le processeur reprend le contrôle.

DoEvents est très utile dans des procédures simples, telles que celle qui permet à l’utilisateur d’annuler un traitement après son démarrage, par exemple la recherche d’un fichier. Pour les processus à long terme, il est plus intéressant de suspendre le processeur en utilisant un contrôle Timer ou en déléguant la tâche à un composant ActiveX EXE. Dans ce dernier cas, la tâche peut se poursuivre complètement indépendamment de votre application, et le système d’exploitation prend en charge le multitâche et le découpage temporel.

Lorsque vous suspendez temporairement le processeur dans une procédure d’événement, vérifiez que la procédure n’est pas exécutée à partir d’une autre partie du code avant le retour du premier appel, sous peine de résultats inattendus. En outre, n’utilisez pas DoEvents si d’autres applications peuvent interagir avec votre procédure de manière imprévue pendant que vous avez cédé le contrôle.

Exemple

Dans cet exemple, la fonction DoEvents permet que l’exécution cède au système d’exploitation toutes les 1 000 itérations de la boucle. DoEvents renvoie le nombre de formulaires Visual Basic ouverts, mais uniquement lorsque l’application hôte est Visual Basic.

' Create a variable to hold number of Visual Basic forms loaded 
' and visible.
Dim I, OpenForms
For I = 1 To 150000    ' Start loop.
    If I Mod 1000 = 0 Then     ' If loop has repeated 1000 times.
        OpenForms = DoEvents    ' Yield to operating system.
    End If
Next I    ' Increment loop counter.


Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.