Barre de progression

Bonjour;

J'ai une macro dispatch je voudrais une barre de progression pour voir l'état d'avancement de la macro .

Est-ce que c'est possible

Merci beaucoup

Bonjour abdermino, le forum,

As-tu regarder la proposition de Steelson ici: https://forum.excel-pratique.com/viewtopic.php?f=2&t=104289

A tester....

Cordialement,

Bonjour,

Merci je l'ai tester mais ca marche pas .

Re,

Merci pour ton retour,

Merci je l'ai tester mais ça marche pas

Tu veux bien afficher une barre de progression lorsque tu lances la macro "Dispatcher" ?

Chez moi, lorsque je cliques sur le bouton Dipatcher, j'ai bien une barre qui s'affiche (avec une progression de 0 à 100%) et qui se ferme dès que la macro a terminé,

Cordialement,

Bonjour ,

Oui exactement, ci joint message erreur

4msg-erreur.docx (114.80 Ko)

Re,

Il semblerait qu'il s'agisse d'une incompatibilité entre les versions 32 bits et 64 bits,

https://forum.excel-pratique.com/viewtopic.php?f=2&t=99189

A tout hasard....

Declare PtrSafe Function GetWindowLongA Lib "user32" (ByVal hwnd As LongPtr, ByVal nIndex As LongPtr) As Long
Declare PtrSafe Function SetWindowLongA Lib "user32" (ByVal hwnd As LongPtr, ByVal nIndex As LongPtr, ByVal dwNewLong As LongPtr) As Long
Declare PtrSafe Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
20envoi-email-v3.xlsm (71.53 Ko)
Spoiler
capture

Je ne saurai t'aider d'avantage, je me suis contenté d'adapter le code de Steelson ,

Cordialement,

Bonjour ,

Parfait ca marche , mais je l'ai essayer sur un fichier 14000 lignes et la barre arrive 100% et lamacro est toujours en cours d'excution ce n'est pas normal ?

et est ce que c'est possibe de crée un bouton extraire des onglets crée vers le bureau avec le nom de l'onglet crée

Re,

Parfait ca marche , mais je l'ai essayer sur un fichier 14000 lignes et la barre arrive 100% et la macro est toujours en cours d'excution ce n'est pas normal ?

La barre ne tient pas compte du temps d' exécution de la macro, c'est à toi de caler la durée de sa progression pour qu'elle corresponde au mieux.

Avec cette ligne, la barre a une progression de 20 secondes.

 For compteur = 0 To 100 Step 5

Si tu règles ton pas (Step) à 2, sa progression passe à 50 secondes..à 3---->34 secondes....à 4 --->24 secondes.....

Tu peux également agir sur

Application.Wait (Now + TimeValue("0:00:01"))

En passant à 2 secondes, tu allonge le temps de progression....

Mais je me répète, je ne suis pas l'auteur et me suis contenté de l'adapter, je ne suis pas en mesure de te proposer mieux,

Cordialement,

Merci beaucoup

mais moi je veux que step = au temps d'excution de la macro , comment je peux savoir en tout cas elle dur plus de 1 minute

Re,

elle dur plus de 1 minute

For compteur = 0 To 100 Step 3
        BarreDeProgression compteur / 100
        Application.Wait (Now + TimeValue("0:00:02"))
    Next

1minute et 8 secondes....

mais moi je veux que step = au temps d'excution de la macro

Désolé, je ne sais pas faire....avis aux amateurs,

Bonne soirée,

Rechercher des sujets similaires à "barre progression"