Puis-je afficher quelque chose pendant l'exécution d'une macro?
J'ai une macro qui prend environ cinq secondes à s'exécuter, et je suis en utilisant le code Application.ScreenUpdating = False
de sorte qu'il ressemble Mot est verrouillé lorsqu'il est en cours d'exécution.
- Je utiliser une boîte de message à la fin de leur dire, c'est complet, mais j'aimerais afficher une image lors de son exécution qui indique à l'utilisateur l'exécution de la macro (principalement de sorte qu'ils ne soyez pas inquiets, mais aussi parce que c'est plus agréable à regarder).
Il pourrait y avoir un moyen plus facile d'aller à ce sujet, mais j'ai décidé de créer une image, créer un utilisateur très simple formulaire, et tout simplement mis mon image comme arrière-plan. Ensuite, j'ai que l'utilisateur forme de pop-up dès que le code commence à s'exécuter.
Le problème, je vais avoir, c'est que, à moins que je le ferme, le reste du code ne sera pas exécuté. Il se bloque jusqu'à ce que je fais quelque chose. Est il possible que je peux obtenir le formulaire utilisateur pour être affiché sans s'arrêter, le reste du processus? Si non, est-il une autre approche que je peux prendre pour afficher une image pendant l'exécution de la macro?
OriginalL'auteur Mike | 2011-11-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez afficher l'objet userform en tant que non-modale:
Essayez d'ajouter un
DoEvents
après l'affichage du formulaire. Assurez-vous également que vous n'êtes pas la suppression de screenupdating lorsque le formulaire est affiché pour la première fois.C'est tellement bizarre. L'ajout de
DoEvents
a mieux fonctionné, mais au lieu de le laisser s'affiche pendant que le code s'exécute, il n'affiche que pour moins d'une seconde, puis il disparaît. Je ne suis pas la suppression de la mise à jour écran jusqu'à ce que après lauserform.Show
etDoEvents
lignes."Il" est l'objet userform, ou de l'image?
Essayé d'utiliser un contrôle de l'image au lieu de définir l'arrière-plan du formulaire?
OriginalL'auteur Tim Williams