Msgbox VBA + timer

Dergoshine -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,


Voilà j'aimerais que lorsque l'on clique sur mon bouton sur ma feuille excel, une msg box se lance, demande de faire patienter l'utilisateur et se referme au bout d'un laps de temps prédéfini avant d'afficher un résultat.

Si c'est possible, j'aimerais que l'utilisateur puisse voir la minuterie sur la msgbox (par exemple les secondes s'écouler) et qu'au bout du temps écoulé la msgbox se ferme toute seule pour afficher le résultat.

Merci d'avance pour votre aide.
A voir également:

3 réponses

Fallentree Messages postés 2445 Statut Membre 209
 
il faut pas rever tu auras pas d interaction dans une msgbox ...
il faut ouvrir une nouvelle fenetre avec un timer d un seconde pour afficher l heure et un test sur le cumul ...
c est simple mais bon vb connait plus trop bien. c est des evenements onclick onload qu il faut gerer ...
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 766
 
Bonjour,
C'est juste pour obliger l'utilisateur à attendre, ou tu veux qu'une procédure se déroule pendant le décompte?
0
Dergoshine
 
C'est juste pour le faire attendre, aucune procédure pendant l'attente
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 766
 
MsgBox temporaire :
Sources Code :
CreateObject("Wscript.shell").Popup "Mon Texte", 3, "Le Titre"
3 = 3 secondes.....

Pour afficher un compte à rebours, il ne faut plus utiliser une MsgBox, mais la fabriquer soi-même grâce aux UserForm. Les sources et le code à utiliser :
Dim i As Integer
 
With UserForm1
    .Show 0
    For i = 10 To 0 Step -1
        Application.Wait Now + TimeValue("00:00:01")
        .Label1 = i
        .Repaint
    Next
End With

exemple
0
Dergoshine
 
Ok j'ai testé le premier code, la fenetre ne disparait pas au bout de 3 secondes, elle ne disparait pas du tout d'ailleurs, il faut appuyer sur OK pour la faire disparaitre...
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 766
 
essaye à nouveau... Ca m'a fait ça aussi la première fois. Ce code nécessite peut être l'enregistrement du classeur...
0
Dergoshine
 
J'ai crée une fonction dans le module et c'est là que j'ai mis le code que tu as indiqué, ensuite j'ai pris mon bouton et j'ai fait Call + nom de ma fonction crée, mais ça ne marche pas
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bonsoir,

pijaku ayant dû s'absenter il m'a demandé de prendre le relais sur ta question.
Chez moi non plus (2003) son fichier ne fonctionne pas comme prévu.

Voici une autre proposition largement inspiré du site de Jacques Boisgontier :
http://boisgontierjacques.free.fr/pages_site/formulairebases.htm#barreAttente

Le temps défile mais pour cela la boite de dialogue doit être non modale.
Ce qui implique que l'utilisateur peut utiliser/modifier le classeur pendant son affichage.
A part ajouter une protection maximales des feuilles avant l'affichage de la boite de dialogue et enlever ces protections après sa suppression je ne vois pas d'autres solutions.
Sinon renoncer à afficher le temps. A moins que qcq'un sache rendre active une boite de dialogue... Je n'ai pas trouvé et il est tard ;-)

http://www.cijoint.fr/cjlink.php?file=cj201108/cijqMbBdKe.xls

eric
0