Afficher une barre de progression lors de l'exécution d'une macro d'un autr

77progress-mail.xlsm (250.48 Ko)
Bonjour, je me permets de vous soumettre encore un de mes soucis

Je suis en train d'élaborer une application de gestion de factures et devis qu'il faudra envoyer par mail et j'ai créé un formulaire
à cet effet qui marche super bien? Sauf que l'exécution du code prend plus de temps que je ne l'espérait compte tenue des configurations
serveurs.

Alors j'ai pensé à une barre de progression qui pourrait indiquer à l'utilisateur que le code s'exécute en arrière plan au lieu d'avoir au
contraire l'userform figé pendant plusieurs dizaines de secondes comme si la macro avait planté. Pour faire simple, j'ai créé en suivant
des tutoriels, une barre de progression simple sans affichage du niveau d'exécution de la macro (car sincèrement, je ne saurait vraiment
le faire). Les deux userforms (celui du mail et celui de la progression) s'exécutent individuellement sans problème.

Mais là je viens vous solliciter voir comment les faire fonctionner simultanément car j'y arrive pas après plus de 24heures d'essaie. Ce que
je souhaite c'est faire apparaitre l'userform de la barre de progression lors du lancement de la procédure d'envoie du mail, et le refermer
juste après que l'envoie ait été effectuée avec succès!

Ou s'il y a un meilleur moyen, je suis ouvert à toutes vos propositions!

NB: Pour raisons de confidentialité, j'aie enlevé les paramètres de configurations serveurs

Pièces jointes

Bonsoir,

un essai ici ci joint :

255progress-mail.xlsm (253.86 Ko)

Il faut utiliser la procédure "Test" afin d'ouvrir le USF Mail de façon à l'ouvrir en mode "modal" comme cela on peut "par dessus" ouvrir un nouveau USF lui aussi en mode modal.

Dans votre procédure d'envoie de mail, j'ai donc ajouté un "Form_Progression.Show 0" afin d'ouvrir le USF de progression en mode modal ce qui permet de "laisser" la main à l'application et avec les différents DoEvents cela devrait marcher.

En fin de procédure d'envoie de mail, j'ai ajouté un "Unload Form_Progression" afin d'effacer ce dernier de l'écran.

Je n'ai pas pu tester le fonctionnement car j'ai un message d'erreur sur l'instruction "mMessage.send" mais c'est normal...

@ bientôt

LouReeD

Ok bien reçu LouReed,

Je vais tester ça et vous reviendrai.

Cordialement!

Bah je vines de l'essayer malheureusement, ça ne marche.

La barre de progression s'affiche au lancement de la macro,

mais cette dernière ne s'exécute pas en arrière plan. Du coup j'ai

mes 2 userforms plantés à l'écran plusieurs dizaines de minutes

sans que rien ne s'y passe!

Bonjour,

vu que votre barre ne représente pas une "avancée" réelle de votre code, si elle ne sert qu'à faire patienter l'utilisateur, alors reprenez le principe énoncé mais en supprimant le code des différentes boucles du USF ProgressBarre et en affichant simplement un message de patience... Voir en affichant un gif animé représentant l'équivalent de votre barre en "action".

@ bientôt

LouReeD

Bonjour,

un nouveau test :

512progress-mail.xlsm (267.48 Ko)

avec le fichier Gif animé correspondant :

progressbar

Attention ! Il vous faut renseigner le chemin d'accès de ce fichier dans le code VBA du USF et faire quelque réglages de taille de la fenêtre...

@ bientôt

LouReeD

Merci infiniment!

Je vais essayer de bricoler le tout voir ce que ça va donner.

Bien à toi!

Rechercher des sujets similaires à "afficher barre progression lors execution macro autr"