La propriété StatusBar de l’objet Application dans Excel VBA peut être utilisé pour indiquer la progression d’une longue macro. De cette façon, vous pouvez laisser le savoir utilisateur qu’une macro est toujours en cours d’exécution.

Situation:

La macro que nous allons créer remplit Range ( « A1: E20 ») avec des nombres aléatoires.

Excel VBA StatusBar Property Example

Ajoutez les lignes de code suivantes au bouton de commande:

  1. Tout d’abord, nous déclarons trois variables de type entier, nommé i, j et pctCompl.

Dim i As Integer, j As Integer, pctCompl As Integer
  1. Ajoutez une double boucle.

For i = 1 To 20

For j = 1 To 5

Next j

Next i

Ajouter les lignes de code suivants (en 3, 4 et 5) de la boucle.

  1. Utilisez la fonction ALEA.ENTRE.BORNES d’importer un nombre aléatoire entre 20 et 100.

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
  1. Initialiser la pctCompl variable. La deuxième ligne de code écrit la valeur de la variable pctCompl et un texte descriptif dans la barre d’état.

pctCompl = (i - 1)  5 + (j  1)

Application.StatusBar = "Importing Data.. " & pctCompl & "% Completed"

Exemple: Pour i = 3, j = 1, (3 – 1) + 5 (1 1) = 11% a été achevée.

  1. Nous utilisons la méthode d’attente de l’objet d’application pour simuler une longue macro.

Application.Wait Now + TimeValue("00:00:01")
  1. Pour rétablir le texte état par défaut de la barre, définissez la propriété StatusBar sur False (en dehors de la boucle).

Application.StatusBar = False

Lorsque vous cliquez sur le bouton de commande sur la feuille:

Excel VBA StatusBar Property Result

Remarque: Vous pouvez lien: / vba-exemples d’interruption-a-macro [interruption d’une macro] à tout moment en appuyant sur Echap ou Ctrl + Pause. Pour une approche plus visuelle, voir notre lien : programme / vba-exemples cours indicateur [indicateur de progression].