sanders1969
Gebruiker
- Lid geworden
- 29 dec 2018
- Berichten
- 243
Weten jullie toevallig hoe je een msgbox na x aantal seconden kan sluiten?
Ik heb de sleep functie ingeladen.
Waar ik al voor vreesde kom deze niet in de function: WaitSeconds omdat de msgbox de code stopt.
Ik kan een formuliertjes maken welke de msgbox nabootst maar misschien hebben jullie een trucje om na x periode de msgbox automatisch doen sluiten.
Reden waarom is vanwege de gebruiker soms de msgbox vergeet af te sluiten en onnodig excel open blijft.
En ja Sendkeys is erg primitief haha... maar probeerde wat en als het werkt waarom niet ;-)
Ik heb de sleep functie ingeladen.
Waar ik al voor vreesde kom deze niet in de function: WaitSeconds omdat de msgbox de code stopt.
Ik kan een formuliertjes maken welke de msgbox nabootst maar misschien hebben jullie een trucje om na x periode de msgbox automatisch doen sluiten.
Reden waarom is vanwege de gebruiker soms de msgbox vergeet af te sluiten en onnodig excel open blijft.
En ja Sendkeys is erg primitief haha... maar probeerde wat en als het werkt waarom niet ;-)
Code:
Sub Macro1()
MsgBox "Ik ben benieuwd", vbInformation + vbOKOnly, "Sluiten"
Call WaitSeconds(5)
SendKeys "{ENTER}"
End Sub
Private Declare Sub Sleep Lib "kernel32" (ByVal lngMilliSeconds As Long)
Public Function WaitSeconds(intSeconds As Integer)
' Comments: Waits for a specified number of seconds
' Params : intSeconds Number of seconds to wait
' Source : Total Visual SourceBook
On Error GoTo PROC_ERR
Dim datTime As Date
datTime = DateAdd("s", intSeconds, Now)
Do
' Yield to other programs (better than using DoEvents which eats up all the CPU cycles)
Sleep 100
DoEvents
Loop Until Now >= datTime
PROC_EXIT:
Exit Function
PROC_ERR:
'Box "Error: " & Err.Number & ". " & Err.Description, , "modDateTime.WaitSeconds"
Resume PROC_EXIT
End Function