ich möchte eine Meldung ausgeben, die automatisch nach Ablauf einer Zeit beendet wird.
Sie soll dem Befehl MsgBox ähneln, aber nach definierter Zeit selbsttätig enden.
Es grüßt
Tomte
Sub MsgboxAnzeige()
Dim bytI As Byte
Dim lngI As Long
Dim WsShell
Const bytZeit As Byte = 3 '== Anzeigedauer
If bytI = 0 Then
Set WsShell = CreateObject("WScript.Shell")
lngI = WsShell.Popup("Achtung !!!!", bytZeit, "Hinweis")
bytI = bytI + 1
End If
End Sub
Sub Test
Dim WsShell, intText As Integer
Dim Begruessung As String
Begruessung = "Hallo " & Environ("username") & vbLf & vbLf & _
"Es ist " & Format(Now, "DDDD, DD.MM.YYYY hh:mm")
Set WsShell = CreateObject("WScript.Shell")
intText = WsShell.Popup(Begruessung, 2, "Hinweis wird automatisch geschlossen!!!", vbExclamation)
' Die 2 in der letzten Zeile gibt die Dauer der Öffnung an.
End Sub
Dim WshShell '(anstatt MsgBox)
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Bitte nur die Schaltfläche benutzen!", 2, "!"
Sub start()
UserForm1.Show False
Application.OnTime Now + TimeSerial(0, 0, 3), "Userform_aus"
End Sub
Private Sub Userform_aus()
Unload UserForm1
End Sub
CreateObject("WScript.Shell").Popup "Bitte nur die Schaltfläche benutzen!", 2, "!"
Private Declare Function MessageBoxTimeOut _
Lib "user32.dll" Alias "MessageBoxTimeoutA" _
( _
ByVal hWnd As Long, _
ByVal lpText As String, _
ByVal lpCation As String, _
ByVal uType As Long, _
ByVal wLanguageId As Integer, _
ByVal dwMiliseconds As Long _
) As Integer
Sub test()
Dim x%
x = MessageBoxTimeOut(0, "Hallo", "TimeoutTest", vbYesNo Or vbInformation, 0, 3000) '5000 = 5 Sekunden
Select Case x
Case Is = 1, 6, 32000
Debug.Print "OK, Ja oder TimeOut"
Case Is = 2
Debug.Print "Abrechen"
Case Is = 7
Debug.Print "Nein"
Case Else
Debug.Print x
End Select
End Sub
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen