Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Userform nach gewisser Zeit automatisch schließen

Userform nach gewisser Zeit automatisch schließen
21.06.2016 11:43:56
Marco
Hallo an alle,
ich brauch nochmal eure Hilfe. Ich hab eine Userform, dass immer zu jeder Stunde um xx:41 automatisch erscheint. Dies dient dazu, dass zu dieser Zeit Werte in das Userform eingegbenen werden müssen. Es funktioniert super.
Wenn man jetzt aber das Userform eine Stunde nicht anrührt (weil man gerade nicht am Platz ist), versucht Excel es erneut zu öfnnen und es kommt ein Fehler.
Wie kann ich das umgeben? Eventuell schließt er es automatisch nach 40minuten?
Anbei der Code sowie das erstellte Excel in gekürzter Form.
Diese Arbeitsmappe:

Option Explicit
Private Sub Workbook_Open()
'--- automatischer erster aufruf beim Öffnen der Datei
Zeitmakro
Nächste = Date + TimeSerial(Hour(Now) - (Minute(Now) >= 41), 41, 0)
Application.OnTime Nächste, "Hinweis"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'--- aufruf zurücknehmen, wenn Datei geschlossen wird.
On Error Resume Next
Application.OnTime EarliestTime:=DaEt, Procedure:="Zeitmakro", Schedule:=False
If Now 

Modul1:

Option Explicit
Public DaEt As Date
Public Nächste As Date
Sub Zeitmakro()
ThisWorkbook.Worksheets("Tabelle1").Range("A1") = Format(Time, "hh:mm:ss")
UserForm1.Label1.Caption = Format(Time, "hh:mm:ss")
DaEt = Now + TimeValue("00:00:01")
Application.OnTime DaEt, "Zeitmakro"
End Sub
Sub Hinweis()
UserForm1.Show
Nächste = Date + TimeSerial(Hour(Now) - (Minute(Now) >= 41), 41, 0)
Application.OnTime Nächste, "Hinweis"
End Sub

Ehrlich gesagt scheue ich mich nicht zu sagen, dass ich den Code von einen von euch bekommen habe und nicht ganz nachvollziehen kann. Zum aufrufen des Userforms funktioniert es aber!
Anbei noch die File:
https://www.herber.de/bbs/user/106377.xlsm
Vielen Dank!

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform nach gewisser Zeit automatisch schließen
21.06.2016 14:14:01
Werner
Hallo Marco,
versuch mal:
Sub Hinweis()
If UserForm1.Visible = False Then
UserForm1.Show
Nächste = Date + TimeSerial(Hour(Now) - (Minute(Now) >= 41), 41, 0)
Application.OnTime Nächste, "Hinweis"
End if
End Sub
Gruß Werner

AW: Userform nach gewisser Zeit automatisch schließen
21.06.2016 15:49:14
Marco
Meger, Werner!
Eigentlich recht einfach. Muss man aber erst mal wissen.
Vielen Dank!

Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
21.06.2016 16:32:56
Werner
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Userform in Excel automatisch schließen


Schritt-für-Schritt-Anleitung

Um eine Userform in Excel automatisch nach einer bestimmten Zeit zu schließen, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass die Userform nach 40 Minuten Inaktivität geschlossen wird.

  1. Öffne die Excel-Datei und wechsle in den VBA-Editor (drücke ALT + F11).

  2. Füge den folgenden Code in das Modul ein, in dem sich deine Userform befindet:

    Option Explicit
    Public DaEt As Date
    Public Nächste As Date
    
    Sub Zeitmakro()
       ThisWorkbook.Worksheets("Tabelle1").Range("A1") = Format(Time, "hh:mm:ss")
       UserForm1.Label1.Caption = Format(Time, "hh:mm:ss")
       DaEt = Now + TimeValue("00:00:01")
       Application.OnTime DaEt, "Zeitmakro"
    End Sub
    
    Sub Hinweis()
       If UserForm1.Visible = False Then
           UserForm1.Show
           Nächste = Date + TimeSerial(Hour(Now) - (Minute(Now) >= 41), 41, 0)
           Application.OnTime Nächste, "Hinweis"
       End If
    End Sub
  3. Schließe den VBA-Editor und teste die Userform in deiner Arbeitsmappe.


Häufige Fehler und Lösungen

Fehler: Userform wird nicht geschlossen, wenn Excel erneut versucht, sie zu öffnen.

Lösung: Stelle sicher, dass du die Sichtbarkeit der Userform überprüfst, bevor du sie erneut öffnest. Verwende dazu den Code von Werner:

Sub Hinweis()
    If UserForm1.Visible = False Then
        UserForm1.Show
        Nächste = Date + TimeSerial(Hour(Now) - (Minute(Now) >= 41), 41, 0)
        Application.OnTime Nächste, "Hinweis"
    End If
End Sub

Füge diesen Code in dein bestehendes Modul ein, um sicherzustellen, dass die Userform nur angezeigt wird, wenn sie nicht bereits sichtbar ist.


Alternative Methoden

Eine alternative Methode besteht darin, die Userform manuell zu schließen, wenn sie nicht mehr benötigt wird. Du kannst einen Timer verwenden, um die Userform nach einer bestimmten Zeit automatisch zu schließen. Beispiel:

Sub SchließeUserform()
    Application.OnTime Now + TimeValue("00:40:00"), "UserForm1.Hide"
End Sub

Füge diesen Code in die Sub Hinweis ein, um die Userform nach 40 Minuten Inaktivität zu schließen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um eine Userform in Excel zu erstellen:

  1. Erstelle eine Userform mit einem Label (Label1) und einem Button.

  2. Füge den folgenden Code in den Button ein:

    Private Sub CommandButton1_Click()
       MsgBox "Werte wurden gespeichert!"
       Unload Me
    End Sub
  3. Rufe die Userform auf, indem du den Hinweis-Code wie oben beschrieben verwendest.


Tipps für Profis

  • Verwende OnTime-Methoden sorgfältig, um das Timing genau zu steuern. Überprüfe, ob die Userform bereits angezeigt wird, um doppelte Aufrufe zu vermeiden.
  • Optimiere deinen Code durch das Hinzufügen von Bedingungen, die die Benutzererfahrung verbessern.
  • Teste deine Userform in verschiedenen Situationen, um sicherzustellen, dass sie robust und benutzerfreundlich ist.

FAQ: Häufige Fragen

1. Frage: Wie schließe ich die Userform manuell?

Antwort: Du kannst die Userform manuell schließen, indem du einen Button mit dem folgenden Code erstellst:

Private Sub CommandButton2_Click()
    Unload Me
End Sub

2. Frage: Funktioniert dieser Code in allen Excel-Versionen?

Antwort: Ja, dieser Code funktioniert in Microsoft Excel 2010 und neueren Versionen. Achte darauf, dass du die Makros aktiviert hast.

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