Créer une barre de progression du travail

Egruat

XLDnaute Occasionnel
Bonjour à toutes et à tous !

Je cherche à construire une barre de progression d'un travail qui vise à consolider des données issues de plusieurs fichiers:
- des liens vers des fichiers sont listés dans mon fichier de consolidation
- j'ouvre un à un chaque fichier listé
- je copie des données et je les colle dans le fichier de consolidation

Je souhaiterai créer une barre de progression qui montrerait l'évolution de l'exécution de ce travail.
J'ai préparé dans le fichier ci-joint le USERFORM et la macro.

Je souhaiterai avoir une barre de progression sans avoir de bouton à cliquer sur le USERFORM et avec une progression du % de 0 à 100.

Pourriez-vous m'aider ? Je n'ai pas d'expérience en USERFORM...
J'utilise Excel 2010

Cordialement
 

Pièces jointes

  • test.xlsm
    19.1 KB · Affichages: 69

Dranreb

XLDnaute Barbatruc
Bonjour.
Non, mais il me semble que ce qui importe c'est la complexité d'emploi seulement.
Et là c'est seulement 2 instructions à ajouter dans le code à suivre: Tâche et OùÇaEnEst.
Il serait éventuellement possible de mettre toute la programmation dans l'UFmBarProg sous forme de 2 méthodes par exemple Init et Boucle. Préfèreriez vous ?
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Terminez d'abord votre programmation, parce que je crois me rappeler que vous aviez commencé une boucle et que vous ne l'aviez pas terminée.
Mettez la au point jusqu'à ce qu'elle tourne.
Ensuite seulement devant le For vous ajoutez Tâche "Titre", NombreDePassagesPrévusDansLaBoucle, "opé"
Enfin juste avant le Next mettez Call OùÇaEnEst

(ne mettez évidemment pas NombreDePassagesPrévusDansLaBoucle, mettez le nombre de passage prévus dans la boucle. Pour un For I = Idéb To Ifin c'est Ifin-Idéb+1)

Le "opé" est utilisé dans la barre d'activité rouge: 123 opé/sec.

Sinon je vous demandais si vous préfèreriez qu'il n'y ait pas d'autre fourniture toute faite que l'UFmBarProg, donc pas de module MBarreProg en plus, quitte à devoir écrire plutôt
UFmBarProg.Init Texte, NbrPrévus, Unités au lieu de Tâche Texte, NbrPrévus, Unités
et UFmBarProg.Boucle au lieu de Call OùÇaEnEst

Remarque. l'UFmBarProg a bien évidemment sa propriété ShowModal à False.
De plus il effectue des DoEvents à la fin des méthodes liées à la mise à jour de son affichage.
Il s'en suit qu'un code suivi de cette façon devient plus ou moins de fait une tâche de fond.
Veillez quand même à ce que des manœuvres effectuées dans Excel pendant ce temps ne puisse pas provoquer une réexécution de votre macro avant qu'elle ne soit terminée.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 344
Messages
2 087 448
Membres
103 546
dernier inscrit
mohamed tano