2017-06-16 2 views
0

Je termine un programme et souhaite faire quelque chose fantaisie pour l'onglet "about". Je suis un grand fan de easter-eggs et autres, et je voulais faire quelque chose de cool. Mon idée était quand le bouton est pressé, exécutez une fonction pour faire des carreaux de couleur avec les cellules alors qu'un msgbox pop dit "hé merci pour utiliser mon programme" ou quelque chose comme ça, alors la fonction se termine dès que msgbox "ok" a été cliqué. Y a-t-il un moyen facile de faire cela? Ce n'est pas très important, mais ce serait vraiment utile pour les futures applications.Autoriser la fonction/boucle à s'exécuter pendant l'ouverture de msgbox VBA

ici est un peu ce que je veux:

do while msgbox <> ok 
'something amazing I guess 
next 

je ne pouvais pas trouver quelque chose de semblable; Cela dit, je ne pose peut-être pas la bonne question. Merci d'avance!

+4

Utilisez un formulaire utilisateur personnalisé et affichez-le en utilisant l'option non modale. –

+0

@TimWilliams, si je comprends bien, ça ne marchera pas. J'ai besoin que la fonction soit infinie jusqu'à ce que "ok" soit pressé. Ma compréhension était que les formes d'utilisateur non-modales se terminaient à la fin d'un temps/tâche plutôt que la forme étant fermée elle-même. – corvonik

+3

Les non-modaux restent ouverts jusqu'à ce que vous les fermiez. Vous devez lancer le formulaire avant d'entrer dans la boucle, puis avoir un bouton sur le formulaire qui termine la boucle (en définissant un drapeau global ou une propriété sur le formulaire qui est vérifié depuis votre boucle) - lorsque votre boucle détecte le "OK "ça sort. Vous devrez peut-être utiliser DoEvents pour permettre au formulaire de répondre au bouton OK, selon le type de boucle que vous prévoyez d'utiliser. –

Répondre

1

me semble que vous pourriez faire une forme non-Modal qui ouvre sur un événement Click, avec quelque chose comme:

Do While msgbox("Hey thanks for using my Kick-ass," & Vbcrlf & _ 
" better then you ever thought possible program",vbokonly,"Title of Program here") <> vbok 

'tell you form do colour tiles and any form of magic you want here 

next 

Vbok, est ce qui est renvoyé par le Msgbox.