VbOKonly dans message box... click Ok

Re le forum,

Lorsque que je quitte mon application par par un bouton "quitter", une MsgBox "A bientôt, See you soon!!!", vbOKOnly se lance.

Cependant, il est nécessaire de cliquer sur le VbOKOnly pour fermer le fichier et l'enregister.

Je souhaiterais faire la même chose mais que le clic sur le OK soit automatique aprés 3 secondes et éventuellement supprimer la petite croix en haut à droite car il y a bien un utilisateur qui va me cliquer la dessus.

Merci de vos aides et conseils.

Bonjour Marky93,

une solution pour ton problème. Au lieu d'utiliser un msgbox, ( personnellement je ne sais pas si c'est possible de simuler un click comme tu souhaites ) tu pourrais utiliser un userform qui reproduit ton msgbox et ensuite avec application.ontime gérer la fermeture automatique de la form.

code dans ThisWokbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    fMessageQuitte.Show
End Sub

dans le code du userform

Private Sub CommandButtonQuitter_Click()
    Si on clique sur quitter, arret du timer et fermeture de la form
    ArretTimer
    Unload fMessageQuitte
End Sub

Private Sub UserForm_Initialize()
    'Lance le timer avec un intervalle de 1 secondes pour 3 secondes
    Call LancerTimer(1, 3)
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    'Empeche la fermeture par la croix
    If CloseMode = 0 Then Cancel = 1
End Sub

et la procedure timer dans un module

Dim HeureTimer As Double
Dim Interval As Integer
Dim NbSecRestante As Integer

Sub LancerTimer(SecInter As Integer, SecRest As Integer)
    NbSecRestante = SecRest
    Interval = SecInter
    Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecutionTimer"
End Sub

Sub ArretTimer()
    On Error Resume Next
    Application.OnTime HeureTimer, "ExecutionTimer", , False
End Sub

Sub ExecutionTimer()
    If NbSecRestante > 0 Then
        fMessageQuitte.CommandButtonQuitter.Caption = "Quitter - " & NbSecRestante & "s "
        fMessageQuitte.Repaint
        NbSecRestante = NbSecRestante - 1

        HeureTimer = Now + TimeSerial(0, 0, Interval)
        Application.OnTime HeureTimer, "ExecutionTimer"
    Else
        ArretTimer
        Unload fMessageQuitte
    End If
End Sub

voici le fichier exemple

Un grand merci Math, c'est plus que parfait.

C'est trés esthétique et ça marche tip top.

Merci merci.

Rechercher des sujets similaires à "vbokonly message box click"