Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
Re : Comment créer une barre de progression en VBA
Non, invoquer les 2 procédures, ça va.
C'est le code pour Tâche et pour OùÇaEnEst qui me posent plus de soucis. Je vais devoir les personnaliser et ils font appels à certaines fonctions que je ne maîtrise pas du tout (VBA.Timer par exemple). J'ai bêtement essayer de voir comment fonctionnait la barre en elle-même, j'ai pas réussi. Ce sont des images que tu bouges?
Vais me concentrer sur l'autre exemple, j'y suis presque dans celui-là... 😉
Re : Comment créer une barre de progression en VBA
C'est le fond Cyan qui est trop pétant ?
C'est une image, mais je peux éventuellement vous la refaire avec une autre couleur…
Le seule partie à traduire c'est la phrase "Fin prévue à …"
Re : Comment créer une barre de progression en VBA
Pour info VBA.Timer donne simplement le nombre de millisecondes écoulées depuis minuit.
C'est utilisé dans OùÇaEnEst pour ne pas recalculer l'aspect de l'UFmBarProg plus de 4 fois par seconde, à la fois pour donner le temps de lire au moins une info mais surtout pour ne pas pénaliser un traitement qui l'appellerait des dizaines de milliers de fois par seconde, comme c'est le cas pour des calculs de pixels d'une image.
Re : Comment créer une barre de progression en VBA
Bonjour Danreb, J'ai essayé votre barre de progression, et je l'ai mise dans ma procédure. Elle marche bien, elle affiche la progression du cycle, mais elle bouffe du temps :
Temps de process sans la barre de progression : 28 secondes
Temps de process avec la barre de progression : 2 minutes 50 secondes
Il y a un parametrage particulier a faire je pense ?
Merci pour votre fichier.
Faites voir votre classeur. Peut être ne l'avez vous pas correctement mise en service.
Je l'utilise couramment pour écrire des valeurs de tableaux en tant que pixel dans des fichiers .bmp
J'appelle la OùÇaEnEst pour chaque pixel. Ça ne bouffe absolument pas de temps, en tout cas rien de mesurable car elle sort immédiatement le plus souvent.
Lorsqu'elle affiche "20000 pixels/sec", 5000 ont été traités sans que son aspect n'ait été remis à jour.
Voici l'initialisation de procedure
Depuis le fichier excel, je met les donnees a rechercher dans un tableau tabRechercheLicence, chaque ligne est en k, qui envoi la recherche sur la bdd, avec un affichage retour sur le classeur.
Sub RechercheLicence()
tabRechercheLicence = Range(col_Nom & iFirstRow + 1 & ":" & col_Nationalite & iLastRow).Value 'Mise en tableau
Tâche Texte:="Démo", NbrPrévus:=UBound(tabRechercheLicence) + 1, Unités:="Opé." ' Lancement.
For k = LBound(tabRechercheLicence, 1) To UBound(tabRechercheLicence, 1)
Application.Wait Now + TimeSerial(0, 0, 1)
'... Recherche de licences dans bdd.Access...
'Affichage du resultat
Call OùÇaEnEst: Next k
End Sub
J'ai rajouté que : tache Texte, Application.wait et Call OuCaEnEst.
Je serais fondé à supposer que c'est seulement le Application.Wait Now + TimeSerial(0, 0, 1) qui bouffe une seconde à chaque passage dans la boucle…
J'ai pu mettre un tel ralentisseur dans le classeur de démo, pour simuler le temps mis par le traitement pénalisant dont on veut surveiller l'avancement, afin que dans la démo on ait le temps de voir quelque chose. Ce n'est pas à reproduire.
Oui, c'est ca. Ca fonctionne maintenant super bien.
J'ai juste vire le +1 (qui empechait le compteur d'arriver a 100) de UBound(tabRechercheLicence) + 1, Unités:="Opé." ' Lancement.
- 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