Microsoft 365 Barre de progression dans une macro sans boucle

  • Initiateur de la discussion Initiateur de la discussion Egruat
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Egruat

XLDnaute Occasionnel
Bonjour,
J'ai une macro ne comportant pas de boucle, qui prend environ une minute à s'exécuter. Elle consiste à ouvrir successivement 3 fichiers de données et à prendre dans chaque fichier la donnée pour les copier dans le fichier principale (dans lequel cette macro se trouve).

Comment faire pour inscrire une barre de progression alors que la macro n'a pas de boucle ? Je recherche une solution simple.

Merci de votre aide !
 
Bonjour Egruat,
La bonne question est pourquoi cela met une minute pour ouvrir trois fichiers et y picorer quelques datas ?
Sinon peut être pouvez vous utiliser le Statusbar, en faisant entre chaque fichier :
VB:
Application.StatusBar ="Traitement du fichier x"
.
Ce n'est pas un progressbar mais vous permet de voir où vous en êtes.
 
Merci de votre réponse. Car il y a beaucoup de données.

La macro efface la base de donnée globale, puis additionne les données de 3 fichiers différents, puis ajoute des colonnes de calcul.

Je cherche à avoir une barre de progression qui puisse tenir compte de l'avancée des différentes actions de la macro. Mais les exemples de Barre de progression sont axés sur une macro ayant une boucle, ce qui n'est pas mon cas.
 
Bonjour.
J'ai un UFmProg qui affiche une barre d'avancement par exécution d'une procédure Tâche où on indique le nombre d'opérations élémentaires à effectuer. Une procédure OùÇaEnEst doit ensuite être invoquée autant de fois que ce nombre, mais je n'ai jamais dit que ces invocations devaient obligatoirement être dans une boucle, bien que ce soit le plus souvent le cas.
 

Pièces jointes

Bonjour.
J'ai un UFmProg qui affiche une barre d'avancement par exécution d'une procédure Tâche où on indique le nombre d'opérations élémentaires à effectuer. Une procédure OùÇaEnEst doit ensuite être invoquée autant de fois que ce nombre, mais je n'ai jamais dit que ces invocations devaient obligatoirement être dans une boucle, bien que ce soit le plus souvent le cas.
Merci pour votre fichier. Mais cela semble très complexe avec de nombreuses macros. Je recherche quelque chose de plus simple. Pourriez-vous m'aider ?
 
Bonjour.
Glissez/déplacez l'UFmProg vers le projet VBA de votre classeur, et il sera opérationnel.
Ah, pas tout à fait: il a aussi besoin des modules de classe Planification et Rythmeur, lesquels utilisent les modules standard MPlanificateur et MRythmeur. Glissez déplacez aussi ces quatres noms dans l'explorateur de projets. L'essentiel c'est que ce soit très simple à utiliser dans le module utilisateur, non ?
 
Dernière édition:
Le l'ai fait dans un nouveau classeur et lancé cette procédure :
VB:
Sub Test()
   UFmProg.Tâche "Essai", 3
   Application.Wait Now + TimeSerial(0, 0, 1)
   UFmProg.OùÇaEnEst
   Application.Wait Now + TimeSerial(0, 0, 1)
   UFmProg.OùÇaEnEst
   Application.Wait Now + TimeSerial(0, 0, 1)
   UFmProg.OùÇaEnEst
   End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
443
Retour