Barre de progression VBA

Barre de progression Excel VBA dans Excel

La barre de progression est quelque chose qui nous montre dans quelle mesure un processus a été fait ou terminé lorsque nous exécutons de grands ensembles de codes qui nécessitent plus de temps pour s'exécuter, nous utilisons la barre de progression dans VBA pour montrer à l'utilisateur l'état du processus, ou si nous avoir plusieurs processus en cours d'exécution dans un seul code, nous utilisons la barre de progression pour montrer quel processus a progressé.

Une barre de progression indique le pourcentage de tâches terminées lorsque la tâche réelle s'exécute derrière l'écran avec un ensemble d'instructions données par le code.

Lorsque le code VBA prend un temps considérable à s'exécuter, l'utilisateur est anxieux de savoir dans quel délai il peut se terminer. Par défaut, nous devons attendre tout le temps pour terminer la tâche, mais en insérant la barre de progression, nous apprenons à connaître la progression du code VBA.

Dans presque tous les logiciels informatiques, nous voyons un graphique à barres de progression qui montre la progression de la tâche que nous exécutons, tout comme l'image ci-dessous.

Dans Excel, nous pouvons créer une barre de progression en utilisant le codage VBA. Si vous vous êtes déjà demandé comment nous pouvons créer une barre de progression, cet article est fait sur mesure pour vous.

Vous pouvez télécharger ce modèle de barre de progression VBA ici - Modèle de barre de progression VBA

Créez votre propre barre de progression

Afin de créer une barre de progression, nous devons suivre plusieurs étapes. Vous trouverez ci-dessous les étapes à suivre lors de la création du graphique à barres de progression.

Étape 1: Créez ou insérez un nouveau formulaire utilisateur.

Dès que vous cliquez sur l'option ci-dessus, vous verrez un formulaire utilisateur comme celui-ci.

Étape 2: Appuyez sur la touche F4 pour afficher la fenêtre des propriétés VBA.

Dans cet onglet de propriétés, nous devons modifier les propriétés du formulaire utilisateur VBA que nous avons inséré.

Étape 3: remplacez le nom du formulaire utilisateur par UFProgressBar.

Nous pouvons maintenant faire référence à ce formulaire utilisateur avec le nom «UFProgressBar» lors du codage.

Étape 4: modifiez la propriété Show Model du formulaire utilisateur sur FALSE.

Étape 5: Ajustez maintenant l'alignement de l'utilisateur en fonction de vos besoins. J'ai changé la hauteur du formulaire utilisateur à 120 et la largeur à 300.

Étape 6: Changez la légende du formulaire utilisateur en «Barre d'état de progression».

Étape 7: À partir de la boîte à outils du formulaire utilisateur, insérez LABEL dans le formulaire utilisateur en haut.

Avec cette étiquette, nous devons définir les propriétés de l'étiquette. Supprimez la légende et rendez-la vide et ajustez la largeur de l'étiquette.

Étape 8: Changez le nom de l'étiquette en «ProgessLabel».

Étape 9: À partir de la boîte à outils, prenez le cadre et dessinez juste en dessous de l'étiquette que nous avons insérée dans les étapes précédentes. Assurez-vous que le cadre est au centre du formulaire utilisateur.

Étape 10: Nous devons maintenant modifier certaines des propriétés du cadre pour lui donner exactement la même apparence que le formulaire utilisateur que nous avons inséré.

Propriété 1: remplacez le nom du cadre par «ProgressFrame».

Propriété 2: supprimez la légende et rendez-la vide.

Propriété 3: remplacez l'effet spécial du cadre par 6 - fmSpecialEffectBump.

Après tous ces changements, notre formulaire utilisateur devrait ressembler à ceci.

Étape 11: Maintenant, insérez une autre étiquette. Cette fois, insérez l'étiquette juste à l'intérieur du cadre que nous avons inséré.

Lors de l'insertion de l'étiquette, assurez-vous que le côté gauche de l'étiquette correspond exactement au cadre que nous avons inséré, comme indiqué dans l'image ci-dessus.

Étape 12: Après avoir inséré l'étiquette, modifiez les propriétés de l'étiquette comme suit.

Propriété 1: remplacez le nom de l'étiquette par «MainProgressLabel».

Propriété 2: supprimez la légende.

Propriété 3: Changez la couleur d'arrière-plan selon votre souhait.

Ok, maintenant nous avons terminé le processus de configuration de la barre de progression et à ce stade, cela ressemble à ceci.

Maintenant, nous devons entrer des codes pour que cela fonctionne parfaitement.

Étape 13: Pour créer le cadre, ajoutez la macro ci-dessous dans Excel.

Code:

 Sub InitUFProgressBarBar () With UFProgressBar .Bar.Width = 0 .Text.Caption = "0%" .Show vbModeless End With 

Remarque: «UFProgressBar» est le nom donné au formulaire utilisateur et «Bar» est le nom donné au cadre que nous avons créé et «Texte» est le nom donné à l'étiquette à l'intérieur du cadre.

Maintenant, si vous exécutez ce code manuellement ou via la touche F5, nous devrions voir la barre de progression comme celle-ci.

Step 14: Now we need to create a macro to perform our task. I am performing the task of inserting serial numbers from 1 to 5000. Along with this code, we need to configure the progress bar chart as well, below code is the tailor-made code for you.

Code:

 Sub ProgressBar_Chart() Dim i As Long Dim CurrentUFProgressBar As Double Dim UFProgressBarPercentage As Double Dim BarWidth As Long i = 1 Call InitUFProgressBarBar Do While i <= 5500 Cells(i, 1).Value = i CurrentUFProgressBar = i / 2500 BarWidth = UFProgressBar.Border.Width * CurrentUFProgressBar UFProgressBarPercentage = Round(CurrentUFProgressBar * 100, 0) UFProgressBar.Bar.Width = BarWidth UFProgressBar.Text.Caption = UFProgressBarPercentage & "% Complete" DoEvents i = i + 1 Loop Unload UFProgressBar End Sub