Afficher un message d'attente en excel lors d'un long traitement (waitbox)

Contenu du snippet

Lors de long traitements sous Excel ou Word il est interressant de pouvoir afficher un message à l'écran pendant cette execution. La première chose à faire est de créer un Userform que j'ai appelé WaitBox contenant uniquement un contrôle Label avec le texte d'attente, le reste du code est ci dessous :

Source / Exemple :


Private Sub Workbook_open()   'dans le module thisWorkbook , événement à l'ouverture du classeur
  Load WaitBox        'on charge le formulaire en mémoire

end sub

Sub VotreTraitement()  'la sub qui contient le gros traitement qui peut être dans un module 

Application.Cursor = XlWait   'affiche le sablier
WaitBox.Show vbModeless   'affiche la waitbox mais continu le traitement
WaitBox.Repaint                   'raffraichit le contenu affiché sinon on a une boite blanche vide

'placer ici votre traitement...

WaitBox.hide  'masque la waitbox
Application.Cursor=XlDefault   'remet le curseur par défaut

End sub

Private Sub WorkBook_BeforeClose(Cancel as Boolean)  'dans module thisWorkbook

Unload WaitBox  'decharge la waitbox de la mémoire

End sub

Conclusion :


Ce petit code fonctionne bien sous office 2000 mais il devrait bien fonctionner sous 97 ou XP (à tester).
Il pourrait être interressant d'y ajouter une "progress bar" mais je n'ai pas encore trouvé le moyen de le faire.
Merci de vos commentaires

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.