• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Msgbox na x aantal seconden sluiten

Status
Niet open voor verdere reacties.

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 ;-)

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
 
De 3 in de code lijkt me wel duidelijk.

Code:
Sub hsv()
    CreateObject("WScript.Shell").Popup "Deze popup duurt ± drie seconden.", 3, "Waarschuwing: Je hoeft niet op OK te klikken", vbCritical
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan