La propriété StatusBar de l’objet Application dans Excel VBA peut être utilisée pour indiquer la progression d’une macro longue. De cette façon, vous pouvez informer l’utilisateur qu’une macro est toujours en cours d’exécution
La macro que nous allons créer remplit la plage (“A1: E20”) avec des nombres aléatoires.
Ajoutez les lignes de code suivantes au bouton de commande:
1. Premièrement, nous déclarons trois variables de type Integer, nommées i, j et transport.
Dim i As Integer, j As Integer, transport As Integer
2. Ajoutez une boucle double.
For i = 1 To 12 For j = 1 To 4 Next j Next i
Ajoutez les lignes de code suivantes (en 3, 4 et 5) à la boucle.
3. Utilisez la fonction RandBetween pour importer un nombre aléatoire compris entre 12 et 80.
Cells(i, j).Value = WorksheetFunction.RandBetween(12, 80)
4. Initialisez la variable transport. La deuxième ligne de code écrit la valeur de la variable transport et du texte descriptif dans la barre d’état.
transport= (i - 1) * 5 + (j * 1) Application.StatusBar = "Importation de données .." & transport & "% Completed"
5. Nous utilisons la méthode Wait de l’objet Application pour simuler une macro longue.
Application.Wait Now + TimeValue ("00:00:01")
6. Pour restaurer le texte de la barre d’état par défaut, définissez la propriété StatusBar sur False (en dehors de la boucle).
Application.StatusBar = False
Résultat lorsque vous cliquez sur le bouton de commande sur la feuille:
Remarque: vous pouvez interrompre une macro à tout moment en appuyant sur Echap ou Ctrl + Arrêt. Pour une approche plus visuelle, consultez notre programme Indicateurs de progrès.