au lieu d'utiliser une msgbox, fais une form de la même taille et avec avec les mêmes boutons que ta msgbox, et là tu pourras controler le temps d'apparition avec ton timer.
c'est contraignant, enfin pas beaucoup quand même ;-) mais ça marchera !
dans ta userform, tu mets un bouton Ok, un bouton Annuler ... enfin ce que tu veux comme bouton, comme ta msgbox par exemple.
Tu dimensionnes ta userform comme tu le souhaite, tu écrit le code qui va bien sur les boutons que tu a mis.
Tu démarres ton timer (que tu as paramétré avec le temps qui te convient) dans la méthode load de ta userform, et dans Private Sub Timer1_timer() tu fermes ta userform.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Modal système. Toutes les applications sont interrompues jusqu'à ce que l'utilisateur réponde au message affiché dans la zone de message.
en fait mais je peux me tromper je crois qu'il n'est pas possible de fermer une userform ouverte en vbmodal (donc msgbox ou une autre form en modal) sans attendre une action de l'utilisateur.
après reste à savoir si l'on peut simuler une action de l'utilisateur ..
avec un timer je ne crois pas que ça marcherait mais c'est à tester.
après quel est l'intérêt de montrer une feuille en modal si c'est pour la fermer 2 secondes après ??? dans ce cas-là utilise plutôt la popup du précédent post. mais pas une msgbox.
franckydeluka < Un timer peut tout à fait fermer une fenêtre, qu'elle soit modale ou non !! La modalité d'une form ne fait qu'impliquer que l'utilisateur ne peuit rien faire d'autre dans aucune autre fenetre de l'application tant que cette fenetre modale est ouverte
Par contre la msgbox, c'est autre chose !! On n'a pas accès à la msgbox depuis le code VB ! Sauf via API, mais il est bien plus simple de se refaire sa propre msgbox via une userform, comme le propose thephil
le probleme est que je nárrive pas a comprendre comment faire fonctionner un timer, je ne sais pas commen quand et ou on doit le declarer, et comment le faire demarer a lóuverture de la boite et lárreter, malheureusement je suis novice dans ce domaine.
pour repondre a franckidelaluka je veu láfficher en modal car si lútilisateur clic sur une feuille, j´ai des boites qui restent ouverte, et ne se ferme plus au bout de 2 secondes et cela me fais buger ma saisie dans mom workbook par la suite (ceci est present avec un popup, cest pour cela que je veux utiliser un MsgBox ou une userform avec un timer pour suprimer ce problème).
1- Pose un composant Timer sur ta form à fermer au bout de 2s
2- Règle sa propriété Interval à 2000 (ce sont des milisecondes)
3- Dans l'EVT Activate() de ta form, tu lance le Timer par un Timer1.Enabled = True
4- Dans l'EVT Timer() de ton Timer (celui qui va se déclenché 2s après la ligne mise dans l'EVT Activate() de la form, tu arrêtes le timer par un Timer1.Enabled = False et puis tu fermes ta form par un Unload Me