Zeitgesteuerte MsgBox
#1
Hallo allerseits,

ich möchte eine Msgbox alle 15 Minuten anzeigen. Gibt es eine Möglichkeit in VBA. Ich habe application.ontime gefunden. Krieg es aber nicht hin.

Danke für eure Hilfe.
Antworten Top
#2
Code:
Sub MyMsgbox()
  Dim Answer As VbMsgBoxResult
  Answer = MsgBox("Nochmal?", vbYesNo Or vbDefaultButton2, "MyMsgbox")
  If Answer = vbYes Then
    Application.OnTime Now + TimeSerial(0, 15, 0), "MyMsgbox"
  End If
End Sub
Antworten Top
#3
(10.04.2026, 18:40)Myxin schrieb: Hallo allerseits,

ich möchte eine Msgbox alle 15 Minuten anzeigen. Gibt es eine Möglichkeit in VBA. Ich habe application.ontime gefunden. Krieg es aber nicht hin.

Danke für eure Hilfe.

Da eine MsgBox sich modal verhält, starten die 15 Min. aber immer erst dann, wenn die Msgbox geschlossen wird. Wenn Du 2 Std. mit dem Klick wartest, startet sie halt erst 2 h 15 min. später...
Daran solltest Du denken oder Dir eine Alternative suchen.... beispielsweise einen Timer, der alle 15 Min einen Sound abspielt.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#4
Danke für den Code.

Ich habe ihn in VBA kopiert unter workbook.Open. Die Minuten habe ich zum Testen auf 1 gestellt. Nach einer Minute kam die Fehlermeldung:

Das Makro 'Mymsgbox' kann nicht ausgeführt werden. Das Makro ist möglicherweise in dieser Arbeitsmappe nicht verfügbar.

Im Trustcenter sind alle Makros aktiviert. 

Kannst du mir sagen, wo ich den Fehler gemacht habe?

Danke und viele Grüße
Antworten Top
#5
Moin!
Das Makro von Andreas gehört in ein allgemeines Modul!
(Einfügen, Modul)
Falls Du es automatisch beim Öffnen der Mappe ausführen willst, dann zusätzlich in DieseArbeitsmappe:
Code:
Private Sub Workbook_Open()
MyMsgbox
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
(11.04.2026, 20:07)Myxin schrieb: Kannst du mir sagen, wo ich den Fehler gemacht habe?

Die Module "DieseArbeitsmappe" und ebenso alle Tabellenblätter sind besondere Module, vom Typ her sind es Klassenmodule und diese gehören zu einem Objekt... okay, das sagt Dir wahrscheinlich im Moment nichts, merk es Dir einfach für die Zukunft.

Man kann auch einen Code in diesen Modulen mit OnTime aufrufen, dann muss man jedoch den Namen des Objektes mit angeben... wir machen es uns einfach und plazieren MyMsgBox in ein reguläres Modul (Menü \ Einfügen \ Modul).

In Workbook_Open rufst Du NICHT MyMsgBox auf so wie Ralf das gesagt hat, weil dann kommt die MsgBox direkt beim Öffnen was Du nicht willst.

Code:
Private Sub Workbook_Open()
  Application.OnTime Now + TimeSerial(0, 15, 0), "MyMsgbox"
End Sub

Nun wird MyMsgbox nach 15 Minuten zum ersten Mal aufgerufen und solange Du die Frage MyMsgBox mit Ja beantwortest in 15 Minuten nochmal.

Alles klar?

Andreas.
Antworten Top
#7
Hallo

Wozu braucht man sowas?

Mein Rat: 
Öffne das Zimmerfenster, dann hörst die Kircheglocke und die schägt ja auch alls 15 Minuten.
Deinn System wird dabei nicht belastet und du kannst ruhig weiter arbeiten.

Gruss Guschti
Der Künstler lebt auch vom Applaus
Antworten Top
#8
(12.04.2026, 10:58)Guschti schrieb: Wozu braucht man sowas?

Naja, die üblichen Probleme: 

a) Die Datei liegt irgendwo auf einem Netzlaufwerk wird von jemandem geöffnet und dann hängt er in der Datei und alle anderen können nicht arbeiten. Da ist eine freundliche Erinnerung alle 15 Minuten schon mal hilfreich. Es sei denn er sitzt nicht am PC...

b) Ich bin zwar konzentriert beim Arbeiten,vergesse regelmäßig entweder neue Daten von irgendwoher zu kopieren oder irgendwo anders irgendwas aus der Datei zu kopieren.

Ich tippe auf a) und wir werden weitere Fragen in diese Richtung bekommen... klappt am Ende dann eh nicht weil die Makros an dem Rechner von irgendwem nicht aktiviert sind und die MsgBox generell nicht mehr kommt.

Andreas.
Antworten Top
#9
Danke.
Antworten Top
#10
... oder man verwendet einfach die Windows Timer APP und startet eine Fokussitzung.

Dafür braucht man nicht wirklich Excel und VBA.

Knobbi38
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste