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 Subdans 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 Subet 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 SubUn grand merci Math, c'est plus que parfait.
C'est trés esthétique et ça marche tip top.
Merci merci.