XL 2019 Afficher une barre de progression lors de l'exécution d'une macro d'un autre userform

Bana XIII

XLDnaute Nouveau
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

  • PROGRESS_MAIL.xlsm
    250.5 KB · Affichages: 22

patricktoulon

XLDnaute Barbatruc
Bonjour
visiblement c'est de l'envoie unitaire ca n'a donc pas de sens d'ajouter encore du poids sur la balence en ajoutant un progressbar perso surtout que pour 1 envoie c'est absurde
c'est le status de cdo qui arrêterait la gestion d'attente

perso j'utilise CDO depuis plus de 15 ans et pour ne pas bloquer VBA excel j’extériorise la manœuvre
en codant le code cdo dans un vbs dynamique qui lorsqu'une fois lancé n'a plus rien avoir avec excel
et vba est libre
 

Bana XIII

XLDnaute Nouveau
Okay Patrick, merci pour votre intervention. j'avoue que j'ai connaissances modestes en VBA, et tout ce que j'ai pu faire jusqu'à présent, j'ai dû glaner les code ça et là sur internet en les adaptant et en apprenant en même temps. Et la dernière trouvaille c'est le CDO. Je me doutais bien qu'il y avait mieux à en tirer avec cette fonction, malheureusement mes connaissances sont très limitées dans le domaine.

Ceci dit, je n'ai pas avancé d'un pouce dans ma quête qui consiste à faire indiquer par un message à l'utilisateur de patienter pendant que la macro s'exécute en arrière plan. Je ne sais pas si la méthode que j'ai retenue pourrait marcher ou pas? Ou s'il y a mieux à faire! Quelque soit la solution, je suis preneur. Cordialement!
 

Statistiques des forums

Discussions
294 444
Messages
1 938 544
Membres
188 917
dernier inscrit
DELAGNES