Ecran d'attente

  • Initiateur de la discussion jer
  • Date de début
J

jer

Guest
j'ai une macro qui se lance avec "auto_open" à l'ouverture de mon document excel. Or celle-ci est longue car utilise une base de données.
j'aimerais rendre invisible le traitement des pages actives et que l'utilisateur ne puisse voir qu'une page d'attente lui demandant de patienter gentillement :)
 
J

jer

Guest
bonjour,

euh, c la charte du forum que tu voulais me faire lire ?
ok ms ce n'est pas trop ce que j'attendais...
peut être y a-t-il qqch que je n'ai pas respecté ?
franchement, je ne vois pas quoi ?
merci de me corriger dans ce cas.
 
P

Pascal76

Guest
bonjour

Et bien je ne sais si tu as lu la charte mais entre tes 2 posts une grosse différence : dans le 2ème tu dis bonjour et tu finis par merci .............

Pour ta réponse pour ne pour ne pas voir ton traitement tu commences ta macro par :

Application.screenupdating=false

et à la fin tu mets

Application.screenupdating = true

Pour le message tu peux lancer de ton workbook_open (préférable à auto_open) un userform avec ton message d'attente par exemple et ta macro se lance et tu unload ton UF à la fin de ta macro.

Si tu veux aller encore plus loin tu peux si ta macro est une grande boucle faire une barre de défilement qui indique ton pourcentage d'avancement (là c'est le top).

Bon courage

Pascal
 
J

jer

Guest
re !

alors tout d'abord, excuse moi pour mon impolitesse.

deuxièmement, merci pour la rapidité de tes réponses et l'efficacité !
je ne connaissais pas cette commande et ça marche bien.
J'ai cependant un autre petit soucis :
j'ai créé un userform avec un message d'attente.
or, celle ci, quand j'écris nom_userform.show (avec dans nom_userform.activate : call ma_procedure) bloque l'exécution du reste du code ?!
tu sais a quoi c dû ?
merci d'avance pour ta réponse

JR
 
C

christophe

Guest
Bonjour pascal, jer, et le forum ,

pas mal ce message d'attente j'ai fait un copier coller et ca marche super bien ....
petite question tout de meme comment faite vous un user form en lancant workbook_open est il possible d'avoir un peut plus de precision ?

enfin merci pascal d'avoir repondu
a bientot j'espere
christophe
 
C

christophe

Guest
re,

rectification apres avoir chercher dans excel je sais creer un user form mais ou doit on renseigner les champs pour pouvoir mettre un message et comment l'enregistrer vous merci bien d'avance
christophe
 
P

Pascal76

Guest
Re

En principe si tu appelle ce qui suit ça marche :

Sub essai()
MessageAttente.Show
End Sub

Sub ma_procédure()
Tes lignes de code

MessageAttente.Hide
End Sub

Private Sub UserForm_Activate()
ma_procédure
End Sub

L'userform s'appelle MessageAttente

Bon courage

Pascal
 
J

jer

Guest
bonjour à toi Christophe !

ok, ça fonctionne et ça ne bloque plus ! cool Pascal !
mais je ne sais pourquoi, le userform est toute blanche quand je lance la macro ! (à part la barre bleue de titre) alors que j'ai ajouté une image et un label (label = ce que tu cherchais christophe ?).
notons que ce label et cette image s'affichait bien quand j'exécutais ms que ça bloquait.

étrange non ?

JR
 
P

Pascal76

Guest
Re

Pour l'UF blanc la seule réponse que j'ai trouvé c'est de déclencher ta procédure au bout d'une seconde ou deux pour que l'UF ait le temps de s'afficher entier.

Donc ça donne en code :

Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:01"), "ma_Procedure"
End Sub

Bon courage

Pascal
 
J

jer

Guest
reeeeeeeeeeeeeeeeeeeeeeeeeeeeee !

finalement, il fallait juste un "nom-userform.repaint" car j'utilise plusieurs classeurs pendant le traitement des données qui s'effectue lors de l'affichage de mon message d'attente.

encore merci et à bientôt peut être !!!

JR
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 696
Membres
103 642
dernier inscrit
nolem