Compteur de temps dans une cellule
Bonjour à toutes et tous,
Malgré de nombreuses recherches et y compris sur ce forum, je n'ai pas réussi à afficher une barre de progression pendant l'exécution d'une macro. Je précise que je suis sous MAC et que j'utilise Excel Mac 2016 et Excel Mac 2011 (pour gérer les userform qui tournent sous Office mac 2016 mais qu'on ne peut pas gérer concernant la mise en forme et paramétrage de l'objet).
Même si l'article ci après me permet de me rapprocher de la solution que je cherche, en tous cas la seule barre de progression que j'ai réussi à faire avancer convenablement sur mon MAC. Bravo et merci Sébastien.
https://www.blog-excel.com/barre-de-progression-excel/
Je souhaiterais à terme en plus de la barre de progression et ou en attendant d'avoir réussi à la faire, pouvoir afficher en cellule A1 par exemple un décompte de temps qui passe durant l'exécution (si possible au centième de seconde) de la macro.
Un chronomètre qui s'afficherait au début de l'exécution de la macro et qui s'arrêterait à la fin de celle ci.
Je joins un fichier exemple avec une boucle simulant une macro.
Par avance merci à celles et ceux qui essayeront de m'aider
Cordialement
Hugues
Bonjour,
Une piste mais comme je n'ai pas de Mac, je ne sais pas si ça fonctionnera ?
Sur la feuille j'ai posé deux Labels, un servant de fond et l'autre de barre de progression, les deux étant invisibles jusqu'à l'appui sur le bouton Chrono. Sur Windows, il y a une Api (GetTickCount) qui permet de compter le temps en millisecondes depuis le démarrage mais je ne pense pas qu'elle soit disponible sur Mac donc pour les millisecondes ???
J'ai aussi mis une proc qui crée dynamiquement ces Labels et les supprime à la fin.
Pour le test (j'ai raccourci les boucles) cliques sur ton bouton et regardes déjà si ça fonctionne et après si ça te convient.
Bonjour Theze,
Merci pour ta contribution même si elle ne fonctionne pas sous mon sytème d'exploitation et excel version MAC.
Pour MACRO CHRONO Message d'erreur Impossible de lire la propriété OLEObjects de la classe Worksheet. sur
Set LblFond = Worksheets("Feuil1").OLEObjects("LblFond").ObjectPour MACRO CHRONO1 Message d'erreur Impossible de démarrer l'application source de cet objet.Mémoire peut-être insuffisante.. sur
Set Ctrl = .OLEObjects.Add("Forms.Label.1")Ceci écrit, je vais étudier ton code et le garder pour des machines sous windows car là tester et pas de soucis, au contraire j'aime beaucoup ta réalisation.
Par contre autant la barre de progression se remplit au fur et à mesure comme souhaité autant en cellue A1 le chronomètre n'affiche que le temps total final de l'exécution de la macro et pas les minutes, secondes et millisecondes qui défilent ce qui était mon souhait premier.
En tous cas merci, et peut être que je vais réussir à adapter ton code mais je pense que là j'atteint les limites de mes compétences.
Cordialement
Hugues
Bonjour,
Par contre autant la barre de progression se remplit au fur et à mesure comme souhaité autant en cellue A1 le chronomètre n'affiche que le temps total final de l'exécution de la macro et pas les minutes, secondes et millisecondes qui défilent ce qui était mon souhait premier.
Comme je te l'ai dis, je ne sais pas sous Mac ce qui permet de mesurer en millisecondes. même dans Excel, il n'y a rien qui le permet, il faut faire appel à l'Api "GetTickCount" donc je ne peux pas t'aider sur ce coup, désolé !
Declare Function GetTickCount Lib "Kernel32" () As LongBonjour Theze,
Merci pour ton retour.
Effectivement pour l'instant rien de plus que ce que tu m'as proposé.
Merci à toi
Cordialement
Hugues