Rechercher : dans
Par :

Code VBA pour fenetre pop-up

Dernière réponse le 9 jan 2008 à 14:08:23 chouchen_lolo, le 8 jan 2008 à 16:56:30 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais inclure l'ouverture d'une fenetre style pop-up avec le message "please wait..." dans le code d'une macro assez lourde en calcul sous Excel.

En gros j'aimerais qu'en lancant la macro, une fenetre me demandant de patienter s'ouvre, que la fonction de base de la macro s'execute normalement et que la fenetre disparaisse automatiquement une fois le calcul fini.

La seule chose que j'ai trouve pour le moment c'est ca:
...
warning = MsgBox("This will take time", vbExclamation + vbOKCancel, "WARNING")
If warning = vbCancel Then End
...


Cette commande ouvre une fenetre avec le message "This will take time" avec le bouton OK et le bouton Cancel.
Si je choisis Cancel, la macro s'arrete.
Si je choisis OK, la fenetre se ferme et la macro s'execute normalement, elle est longue et un utilisateur non experimente pourrait croire que le PC a plante.

Pouvez vous m'aider ?

Merci d'avance

Meilleures réponses pour « code VBA pour fenetre pop up » dans :
Le blocage des pop-up dans Google Toolbar VoirVider le compteur de fenêtres pop-up La barre d'outils Google Toolbar n'enregistre pas les fenêtres pop-up qui ont été bloquées sur l'ordinateur. Il n'est donc pas indispensable de remettre à zéro ce compteur de fenêtres pop-up. Toutefois, il est...
Bloquer les fenêtres pop-up VoirRien de plus agaçant que les fenêtres de publicité intempestives qui s’ouvrent aux quatre coins de l’écran. Pourtant il est assez simple de les bloquer. Le plus souvent, il suffit de modifier l’une des options de votre navigateur. Bloquer les...

1

le père, le 8 jan 2008 à 17:01:19

Bonjour

Tu ne peux pas avec Msgbox car Msgbox est une fenêtre modale, c'est à dire que ton application ne fait rien d'autre tant que tu ne l'as pas refermée.

Crée une autre fenêtre avec ton message. Au début de ta macro tu fais Autrefenetre.show et à la fin Autrefenetre.hide

Répondre à le père

2

chouchen_lolo, le 8 jan 2008 à 17:36:25

D'accord j'ai compris le concept.
Mais peux tu m'expliquer comment creer la fenetre que je vais montrer et cacher apres ?

Merci

Répondre à chouchen_lolo

3

le père, le 8 jan 2008 à 17:58:31
  • +1

Dans VBA, dans la fenêtre projet (en haut à gauche par défaut) tu fais un clic droit - insertion - userform.

Répondre à le père

4

chouchen_lolo, le 8 jan 2008 à 18:15:23

Bon alors, j'ai reussi a creer la fenetre et j'arrive egelement a la faire apparaitre.
Par contre j'ai toujours le meme probleme: je dois d'abord la fermer (en cliquant sur la croix) avant que le calcul principal de la macro ne se lance.

Je suis donc passe de "cliquer sur Ok" a "cliquer sur la petite croix".

Répondre à chouchen_lolo

5

le père, le 8 jan 2008 à 18:22:23

Tu as le choix UserForm1.show vbModal ou userform1.show vbmodeless. C'est Modeless qui t'intéresse, alors que c'est vbmodal par défaut.

pour changer le nom, regarde la fenêtre propriétés à gauche. Tu peux changer le nom, le titre, etc.

Répondre à le père

6

Polux31, le 9 jan 2008 à 01:03:22

Bonjour, je ne connaissais pas vbmodeless ... je mets le code qui doit être executé dans le form_initialize() ... je prends note pour vbmodeless ... merci le père.

;o)

Polux

Répondre à Polux31

7

chouchen_lolo, le 9 jan 2008 à 10:13:43

Salut salut,

Bon alors j'ai utilise vbmodeless. Ca marche: ma fenetre d'attente s'ouvre bien au debut de la macro pour se fermer automatiquement a la fin du calcul.

Par contre j'ai un probleme d'affichage du contenu de la fenetre...
En fait rien ne s'affiche: l'interieur de la fenetre est tout blanc au lieu d'etre gris avec "please wait" d'ecrit.

Vous avez une idee de d'ou vient le probleme ?
Voici le morceau de code qui ouvre la fenetre:

Attente.Show vbModeless

Manque-t-il qque chose pour avoir tout a s'afficher correctement ?

Merci

Répondre à chouchen_lolo

8

le père, le 9 jan 2008 à 10:24:05

Bonjour

C'est à toi de mettre ce message dans la fenêtre.
Quand tu es sur ta fenêtre dans l'éditeur VBA, tu dois avoir une petite fenêtre "boîte à outils" qui te permet de rajouter du texte, des images, de boutons etc... Explore un peu, n'attends pas tout de moi.

Répondre à le père

9

chouchen_lolo, le 9 jan 2008 à 11:15:10

Je n'attend pas tout de toi.

Mon probleme ne vient pas de la. Je me doute bien que c'est a moi de mettre le message que je veux dans cette fenetre.
C'est ce que j'ai fait (et avant que tu me le dises): dans l'editeur VBA, j'ai utilise la boite a outils pour ecrire "please wait..." dans ma fenetre.

Donc tout semble OK dans VBA. Pourtant, qd je lance la macro, la fenetre qui apparait est vide et blanche: le texte sur fond gris que j'ai mis dans la fenetre dans VBA n'apparait pas. C'est comme s'il y avait un pb de rafraichissement.

Répondre à chouchen_lolo

10

le père, le 9 jan 2008 à 11:57:37

Attente.Show vbModeless
immédiatement suivi de
Attente.Repaint

Répondre à le père

11

 chouchen_lolo, le 9 jan 2008 à 14:08:23

C'est bon tout marche impecc maintenant.

Merci beaucoup pour tout.

Ciao ciao

Répondre à chouchen_lolo