Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox zeitgesteuert

Forumthread: MsgBox zeitgesteuert

MsgBox zeitgesteuert
15.09.2024 18:58:06
Tomte
Hej,
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
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox zeitgesteuert
15.09.2024 19:50:52
Onur
Bastele doch selber was - mit einer Userform und ein paar Controls.
AW: MsgBox zeitgesteuert
16.09.2024 07:36:56
Beverly
Hi,

z.B. so:

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


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: MsgBox zeitgesteuert
16.09.2024 09:08:40
UweD
Hallo



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



LG UweD
Anzeige
AW: MsgBox zeitgesteuert
16.09.2024 11:15:30
Herbert Grom
Hallo,

vielleicht hilft dir das:

 Dim WshShell '(anstatt MsgBox)

Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Bitte nur die Schaltfläche benutzen!", 2, "!"


Die "2" ist die Zeit in Sekunden, die das Fenster sichtbar bleibt.

Servus
Anzeige
AW: MsgBox zeitgesteuert
16.09.2024 17:37:24
daniel
Hi
ich unterfüttere mal die Idee von Onur mit konkretem Code:
1. erstelle dir eine Userform. Wenn die nur Text anzeigen soll, geht das einfach.

2. du brauchst dann diese beiden Makros.
Sub start()

UserForm1.Show False
Application.OnTime Now + TimeSerial(0, 0, 3), "Userform_aus"
End Sub


Private Sub Userform_aus()

Unload UserForm1
End Sub

das zweite schließt sie Userform, das erste öffnet die Userform und startet dabei gleichzeitig das Makro zum schließen mit einem Zeitversatz (im Beispiel 3 Sekunden)

das ist etwas einfacher als die API-Variante und du hast in der Userform mehr gestaltungsmöglichkeiten als in der alternativen Messagebox.

Gruß Daniel
Anzeige
AW: MsgBox zeitgesteuert
16.09.2024 11:42:51
volti
Hallo zusammen,

wenn bei der hier mehrfach gezeigten PopUp-Version das erstellte Objekt nicht wieder zu Nothing gesetzt wird, dann geht es auch kürzer:

CreateObject("WScript.Shell").Popup "Bitte nur die Schaltfläche benutzen!", 2, "!"


PS: Bereits in mehreren Forenbeiträgen der längeren Vergangenheit wurde von einem gelegentlichen Versagen der PopUp-Version berichtet. Warum ist leider unklar.
Im Zweifel also die von Ralf gezeigte API-Version benutzen, die geht immer....

Gruß
Karl-Heinz
Anzeige
AW: MsgBox zeitgesteuert
15.09.2024 20:02:46
RPP63
Moin!
Aus den Tiefen des WWW:
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


Gruß Ralf
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige