Propriété de mise à jour de l'écran VBA

Mise à jour de l'écran Excel VBA

La mise à jour d'écran VBA est une propriété utilisée pour éviter ou empêcher les flashs de distraction lors de l'exécution du code et la rendre plus rapide en désactivant la mise à jour de l'écran. Nous pouvons désactiver la mise à jour de l'écran en définissant cette propriété sur false.

Souvent, nous pouvons sentir que l'écran Excel devient fou pendant que la macro est en cours d'exécution et nous en sommes presque frustrés. Mais comment gérer ces situations et rendre le code plus rapide que la lenteur habituelle?

La mise à jour de l'écran est quelque chose que nous pouvons remarquer pendant l'exécution de la macro Excel. Lorsque la tâche est en cours d'exécution, nous pouvons remarquer que notre écran met à jour les valeurs jusqu'à ce que la macro termine sa tâche assignée. Lorsque notre écran clignote ou se rafraîchit, cela entraîne un ralentissement du programme Excel et prend plus de temps que d'habitude pour terminer la tâche.

Dans VBA, nous avons une propriété appelée «ScreenUpdating» et nous définissons cette propriété sur FALSE afin d'éliminer le processus de mise à jour de l'écran pendant l'exécution du code.

Dans cet article, nous dirons au revoir au visionnage du drame d'action à l'écran pendant que le code est en cours d'exécution. Aujourd'hui, vous allez rendre votre code plus rapide et plus rapide que votre temps habituel.

Quand utiliser la fonction de mise à jour de l'écran?

Si vous avez le moindre doute sur l'utilisation de cette technique. Regardez dans les points ci-dessous.

  • Lorsque vous parcourez un grand nombre de cellules.
  • Envoi d'e-mails depuis Excel VBA.
  • Basculer entre les classeurs Excel.
  • Ouverture de nouveaux classeurs.

Comment utiliser la fonctionnalité de mise à jour d'écran dans le code VBA?

Vous pouvez télécharger ce modèle Excel de mise à jour d'écran VBA ici - Modèle Excel de mise à jour d'écran VBA

Exemple # 1 - Désactiver la mise à jour de l'écran

Pour un exemple, regardez le code ci-dessous.

Code:

 Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long MyNumber = 0 For RowCount = 1 To 50 For ColumnCount = 1 To 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount) .Sélectionnez les cellules (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount End Sub 

Ce qui précède a une boucle VBA imbriquée pour insérer les numéros de série de la première colonne à la 50e colonne et revient à nouveau et insérer le numéro de série à partir de 51 de la deuxième ligne à la 50e colonne.

Comme ça, il s'insérera jusqu'à ce qu'il atteigne la 50e rangée.

Pendant que ce code s'exécute, vous pouvez remarquer que votre écran scintille et vous ne pouvez rien faire d'autre que de regarder ce moment fou.

Pour éviter tout cela, nous pouvons ajouter la mise à jour de l'écran à FALSE.

Pour accéder à la fonctionnalité de mise à jour de l'écran, nous devons d'abord accéder à l'objet Application.

Comme nous pouvons le voir avec l'objet Application, nous avons de nombreuses propriétés et méthodes. Donc, sélectionnez Mise à jour de l'écran dans la liste IntelliSense.

Remarque: vous devez appliquer la fonction de mise à jour d'écran immédiatement après la déclaration des variables.

Après avoir sélectionné la propriété Mise à jour de l'écran, mettez un signe égal (=).

Comme nous pouvons le voir, deux valeurs booléennes c'est-à-dire FALSE & TRUE.

Pour arrêter la mise à jour de l'écran, définissez l'état sur FALSE.

Maintenant, lorsque la macro commence à s'exécuter en premier, elle mettra à jour l'état de mise à jour de l'écran sur FALSE et passera à la ligne suivante.

Puisque la macro a exécuté la mise à jour de l'écran sur FALSE, elle ne permettra pas à l'écran de se mettre à jour pendant que le code exécute sa tâche.

Exemple # 2 -

Toujours définir la mise à jour de l'écran sur TRUE à la fin

J'ai vu de nombreuses personnes définir la mise à jour de l'écran sur FALSE mais j'ai oublié de la remettre sur TRUE à la fin de la macro.

Réglez toujours la mise à jour de l'écran sur TRUE à la fin de la macro.

Code:

 Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 For RowCount = 1 To 50 For ColumnCount = 1 To 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount) .Sélectionnez les cellules (RowCount, ColumnCount) .Value = MyNumber Suivant ColumnCount Suivant RowCount Application.ScreenUpdating = True End Sub