Bonjour
Quand j'ai l'utilité d'afficher un message temporaire j'utilise l'API MessageBoxTimeout
Si je l'ai bien déclaré pour les 64 bits voici un exemple
Option Explicit
'***********************************************
Public Declare PtrSafe Function MessageBoxTimeout Lib "user32.dll" Alias "MessageBoxTimeoutA" _
(ByVal Hwnd As LongPtr, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal uType As Long, _
ByVal wLanguageID As Long, _
ByVal lngMilliseconds As Long) As Long
'***********************************************
Function MsgBoxTimer(Prompt As String, Seconde As long, BoutonIcon As Integer, Caption As String) As Long
'***********************************************
MsgBoxTimer = MessageBoxTimeout(0, Prompt, Caption, BoutonIcon, 0, Seconde * 1000)
End Function
'***********************************************
Sub Test_MsgBoxTimer()
'***********************************************
'Appel de MsgBoxTimer
'***********************************************
Dim Reponse
'vbYes = 6, vbNo = 7, sinon 32000
'***********************************************
Reponse = MsgBoxTimer("Prompt", 5, vbYesNo, "Caption")
Select Case Reponse
Case vbYes
'Code
Case vbNo
'Code
Case Else
'Code
End Select
End Sub