L`approche que j`ai démontrée dans la section précédente est idéale pour les boucles, mais ce n`est pas très utile si votre macro n`est pas construite avec une boucle primaire. Il s`agit de l`endroit où ajouter votre propre code lorsque vous souhaitez utiliser cet indicateur de progression pour votre propre macro. Dans l`image ci-dessous, vous pouvez voir que mon formulaire utilisateur est nommé Progress, et j`ai utilisé la légende de la progression macro. MaxRow et iRow? Dépendent de la taille des données et la vitesse du serveur, macro va terminer la tâche. Dois-je utiliser un appel Func – Call UserForm_Activate () – pour l`activer ou dois-je inclure l`intégralité de l`extrait de macro au début de mon code macro? Avant de vous demander pourquoi je n`ai pas éditer ce poste est que j`ai fait et il a été rejetée a été dit d`afficher une nouvelle réponse. Vous pouvez également télécharger l`exemple de classeur et voir comment il fonctionne. Videz le champ légende, définissez Height sur 24 et Width sur 204. Excellentes choses ici! Clic droit de la souris sur le contrôle de trame, puis cliquez sur Propriétés. Juste quelques petites choses que j`ai apprises. Fonction DoEvents et un formulaire non modal pour utiliser un formulaire unique pour toutes vos macros. L`inconvénient: vous devez écrire des données de VBA à la feuille de calcul très souvent et cela peut prendre du temps (voir ici pour plus d`informations: Excel VBA lecture et écriture test de performance). Il y a deux sous-marins ici. Maintenant, essayons un plus grand nombre d`itérations.

Cependant, la plupart des gens finissent par créer des formulaires individuels pour chacune de leurs macros. Les formes modales ne permettent pas cela. Ensuite, nous pouvons également diviser les progrès dans 100% et de cette façon il résoudra votre problème. Vous devez coder cet événement à l`intérieur de la boucle (et évidemment incrémenter la valeur de ProgressBar). Si vous pouvez envoyer votre excellent sur [email protected], alors je peux regarder dedans et le fixer. Le contrôle d`étiquette qui se redimensionne est une solution rapide. Dans le code, je suis en boucle à travers une table faire des trucs. Au lieu de Sub UserForm_Initialize, nous créons le Sub UserForm_Activate. Vous êtes libre d`étendre les wrappers VBA en fonction de vos besoins. Salut version modifiée d`un autre poste par Marecki. Il s`agit de CurrentProgress à utiliser pour calculer la progression via la macro. Espoir qui aidera.

Vous avez réussi à créer une barre de progression incroyable en utilisant VBA que vos utilisateurs seront sûrement reconnaissants! Pour l`affichage et le codage, les deux fins, il est très facile à utiliser. Vous trouverez ci-dessous la syntaxe pour afficher la progression de votre macro dans la barre d`État: application. Barre de progression simple avec% Increment dans un formulaire utilisateur. Il s`agit d`une erreur de compilation très simple. Tant que vous mettez périodiquement à jour votre texte LabelCaption et votre largeur LabelProgress, vos utilisateurs seront heureux. Vous devez modifier certaines propriétés de ce contrôle Frame. Votre frmProgressBar ne peut pas être lu. Une fois que vous obtenez à ce point, vous êtes prêt à ajouter les macros à votre barre de progression afin qu`il se comporte comme nous le voulons. Et ProgressPercentage pour stocker la progression par le biais de la macro sous forme de pourcentage (il s`agit de l`étiquette de texte au-dessus de la barre de progression). Ouvrez cette URL/qcbin (Notez seulement aller jusqu`à/qcbin. La première chose que nous devons faire est de créer le objet UserForm et la barre de progression.

Si votre réponse est oui, je serai heureux de vous envoyer une copie du classeur Excel. Et si vous n`avez pas de boucle? Lors de la fermeture du formulaire utilisateur, une série de macros s`exécutera à une heure non définie, car elle dépendra de la taille du fichier source. Vous trouverez ci-dessous les étapes pour créer une barre de progression dans votre code de macro Excel. Vérifiez si elle aide, sinon revenir à moi avec votre classeur, je peux vous aider à ce sujet. En d`autres termes, leurs barres de progression ne sera pas aussi jolie que vous les utilisateurs de Windows, mais c`est OK, à droite! Cela gardera Excel VBA occupé pendant un certain temps et nous donne la possibilité de voir la progression de la macro. Ce court morceau de code force VBA à redessiner votre barre de progression afin qu`il soit mis à jour chaque fois que le UserForm change.