Evénements VBA

Fonction Excel VBA DoEvents

Avec l'aide de VBA DoEvents , nous pouvons faire fonctionner le code en arrière-plan et nous permet simultanément de travailler avec Excel et d'autres logiciels d'application. DoEvents nous permet non seulement de travailler avec d'autres logiciels, mais nous pouvons également interrompre l'exécution du code.

La fonction DoEvents passe le contrôle au système d'exploitation de l'ordinateur sur lequel nous travaillons.

Comment utiliser la fonction DoEvents?

Une grande quantité de code VBA est requise lorsque l'exigence est énorme. Dans ces cas, Excel se bloque et s'arrête pendant un certain temps et même parfois, il ne répond plus.

Vous pouvez télécharger ce modèle Excel VBA DoEvents ici - Modèle Excel VBA DoEvents

Pour un exemple, regardez le code ci-dessous.

Code:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i Next i End Sub 

Le code ci-dessus insérera des numéros de série de 1 à 100000. Il faudra facilement plus d'une minute pour exécuter la tâche. Pendant l'exécution, Excel se bloque pendant un temps considérable pour terminer la tâche. Pendant ce temps, Excel affiche le message comme «Excel ne répond pas».

De plus, nous ne pouvons pas accéder à la feuille de calcul sur laquelle nous travaillons. C'est une chose frustrante, alors comment rendre la feuille de calcul Excel disponible pour fonctionner pendant que le code s'exécute derrière l'écran.

Cela peut être réalisé en ajoutant une fonction VBA DoEvents .

Code:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 To 100000 Range ("A1"). Value = i DoEvents Next i End Sub 

Au moment où nous ajoutons la fonction DoEvents dans le code, nous pouvons accéder à la feuille de calcul Excel.

D'en haut, nous pouvons voir que le code est en cours d'exécution mais nous pouvons accéder à la feuille de calcul.

Interrompre l'exécution du code

Lorsque le code s'exécute derrière l'écran, nous pouvons ajouter des lignes, des colonnes et supprimer les mêmes, nous pouvons renommer la feuille et nous pouvons également faire beaucoup d'autres choses. Au moment où nous ajoutons DoEvents, le code vba s'exécute rapidement et nous permet de conclure que la tâche mentionnée s'exécute pour elle-même.

  • L'un des dangers de la fonction DoEvents est que lorsque nous changeons de feuille de calcul ou de classeur, elle écrase les valeurs de feuille actives.
  • Un autre danger est que si nous saisissons une valeur dans la cellule, l'exécution du code s'arrête et ne nous avertit même pas.
Remarque : malgré les dangers de DoEvents ci-dessus, il s'agit toujours d'une fonction pratique. Nous pouvons utiliser DoEvents dans le cadre du processus de débogage lorsque nous essayons de corriger les bogues du code que nous avons écrit.