Microsoft 365 Validation (bouton "no") automatique d'une Msgbox après 1mn

  • Initiateur de la discussion Initiateur de la discussion Fab117
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fab117

XLDnaute Impliqué
Hello,
Je souhaiterais faire une macro qui tourne en boucle, mais m'offre régulièrement une porte de sortie.
J'ai donc fait une boucle qui m'ouvre une Msgbox.
Si je clique "yes", il sort de la macro.
Si je clique "No" il déroule la macro et retourne sur la Msgbox.

Existe-t-il un moyen pour qu'après 1mn il "clique" tout seul sur le bouton "No" de la Msgbox si entre temps je n'ai pas réagit.

Autrement dit:
Il ouvre la Msgbox.
J'ai 1mn pour cliquer sur "yes", sinon il déroule le reste de la macro, puis relance la Msgbox.
Et ainsi de suite jusqu'à ce que je clique "yes"
VB:
Do Until Condition
    If MsgBox("Cliquer Yes pour sortir de la macro", vbYesNo, "Demande de confirmation") = vbYes Then
            Exit Sub
    End If
Loop

Merci d'avance de votre aide.

Fab
 
Bonjour.
Je ne sais pas si on peut le faire avec un MsgBox, mais avec un UserForm non modal, oui.
J'en ai deux comme ça, si ça vous intéresse, qui peuvent interrompre une exécution en les fermant par la croix: un UFmProg qui affiche une barre de progression pour un traitement dont on peut déterminer à l'avance un nombre d'opérations élémentaires et un UFmVisu qui permet d'afficher l'activité d'un système à appels récursifs dont la durée est imprévisible.
Si aucun des deux affichage n'est adapté à votre traitement on pourrait quand même afficher le temps déjà passé sur ce traitement, vu qu'il y a aussi des chronomètres dans le classeur de démonstration qui porte la barre de progression.
Édition: J'allais oublier le plus intéressant: un UFmDécompte qui affiche le temps restant jusqu'à interruption assumée, muni d'un Label pour un message !
Allez, je joins ce classeur là …
 

Pièces jointes

Dernière édition:
Bonjour,
Il existe plusieurs MsgBoxPerso sur Internet et j'en ai aussi fait un avec des tonnes d'options (facultatives !) sur la base d'un UserForm et d'un Module à include dans le Projet VBA dont l'aspect est très proche du MsgBox standard. Une des options est un temps maxi d'affichage.

Edit: si c'est uniquement pour le Timeout, mieux vaut utiliser les solutions proposées ci-dessous.
Ce MsgBoxPerso a surtout vocation à proposer des boutons personnalisables et un texte au format adaptable.
 

Pièces jointes

Dernière édition:
Bonsoir Fab117, Dranreb, Dudu2, le forum

Je te propose ceci :

VB:
Sub ReponseMSG()

Dim Wsh As Object, Reponse As Integer
Set Wsh = CreateObject("WScript.Shell")

Reponse = Wsh.popup("Voulez vous gagner à l'euromillion ?", 1, "Demande de confirmation", vbYesNo + vbDefaultButton2)

Select Case Reponse
    Case -1                 'Pas de réponse
        'Blablabla pas de réponse
        MsgBox "Pas de réponse de l'utilisateur", , "Alors tu dors !"

    Case 6                  'Réponse oui
        'Blablabla réponse oui
        MsgBox "Tu as cliqué sur oui, alors tu vas jouer pour gagner", , "Bravo !!"
    
    Case 7                  'Réponse Non
        'Blablabla réponse non
        MsgBox "Tu as cliqué sur non", , "Dommage pour toi"

End Select

End Sub

Wsh.popup("Voulez vous gagner à l'euromillion ?", 1, "Demande de confirmation", vbYesNo + vbDefaultButton2)
Le 1 en rouge te permet de régler la durée du popup (ici 1 seconde)

@Phil69970
 
Dernière édition:
re
bonsoir @Phil69970 , @Dudu2
un msgbox proposant deux choix réponse (ex: yes/No)ou plus ne peut qu’être modal sans ça c'est de la farigoulette
en effet les deux derniers exemples ne sont pas modal puisque je peux sélectionner des cellules en attendant donc faire tout autre chose y compris biaiser le msgbox
ton premier Dudu2 (#3) semble fonctionner comme il se doit (il est modal et exige une réponse et se ferme après 8 secondes )
pour les deux derniers donc c'est choux blanc 😉
A méditer
😉
edit donc non il n'a pas l’embarras du choix 😉 😉 😉 😉

ps: @Phil69970
avec certaine version + config de excel il arrive qu'avec wscript.shell que l'argument delay pour le msgbox soit inopérant ce qui est le cas chez moi sur W7 et xl2013
 
Dernière édition:
re
si vous finissez par le faire avec un userform,j’irais me plus loin dans mon raisonnement
en effet il est sensé être modal et vous interdire de pourvoir faire autre chose et s'auto fermer avec un delay
et bien pour la rare fois je ferais un do loop interne puisqu'on s'en fout on est sensé pouvoir rien faire d'autre que de répondre ou attendre son auto fermeture
 
Je trouve justement dommage avec un affichage modal, aussi possible avec un UserForm, que pendant que la question reste posée, même pour une minute, le traitement ne se fait pas, alors qu'il pourrait se poursuivre jusqu'à la décision, soit par l'opérateur soit automatique.
 
Je trouve justement dommage avec un affichage modal, aussi possible avec un UserForm, que pendant que la question reste posée, même pour une minute, le traitement ne se fait pas, alors qu'il pourrait se poursuivre jusqu'à la décision, soit par l'opérateur soit automatique.
bonsoir @Dranreb
ouaip la question servirais a quoi alors ? 😉 dans ce cas là un vbokonly suffit et non modal
 
On a quand même oublié de faire préciser au demandeur si son traitement est bien écrit pour être le plus performant possible. Souvent le souhait d'un affichage pendant une exécution trahissent une macro mal écrite. Mais ce n'est pas forcément le cas: mon UFmVisu dont le parlais plus haut est conçu pour des tirages aléatoires de joueurs avec contraintes pour des compétions. Ceux-ci n'émettent jamais de requête à Excel, lesquelles sont pratiquement les seule à être foncièrement pénalisantes.
Si dans son code il y a plein de Cells ou Range dans des boucles, on va lui arranger tout ça pour qu'il n'en ait plus besoin !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour