Sub ParametrageUserForm()
UserForm1.Show
End Sub
Sub MiseAJour()
ActiveSheet.Calculate
End Sub
Sub LancementMsgBoxOntime()
Dim Temps1, Temps2
Dim boolFaire As Boolean
'---
'### On teste qui appelle la routine LancementMsgBoxOntime ###
Select Case TypeName(Application.Caller)
'--- C'est le code qui a appelé (Application.OnTime) ---
Case "Error"
boolFaire = True
'--- C'est un contrôle qui a appelé ---
Case "String"
'°°° Si c'est le Bouton 1 (lancement Routine), on fait °°°
If Application.Caller = "Bouton 1" Then boolFaire = True
'°°° Si c'est le Bouton 2 (paramètrage timing), on ne fait pas °°°
If Application.Caller = "Bouton 2" Then boolFaire = False
End Select
'---
If boolFaire Then
MsgBox "Toto"
Temps1 = "00:00:" & Format(Range("A1").Value - 1, "00") 'on lancera le CALCULATE une seconde avant le relancement de la MsgBox
Temps2 = "00:00:" & Format(Range("A1").Value, "00")
Excel.Application.OnTime Now + TimeValue(Temps1), "MiseAJour " 'on lance une procédure intermédiaire une seconde avant
Excel.Application.OnTime Now + TimeValue(Temps2), "LancementMsgBoxOntime" 'on repart pour un tour
End If
End Sub