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

Excel automatisch schließen ?

Forumthread: Excel automatisch schließen ?

Excel automatisch schließen ?
22.08.2024 11:27:10
xcom
Hallo Forum,

vorab schon mal Entschuldigung ich habe keine Ahnung.

Mein Ziel war es Excel automatisch zu schließen, dies habe ich auch geschafft in dem ich ein Modul eingefügt habe, den Code dazu habe ich aus dem Forum reinkopiert.

Soweit so gut, jedoch kommt die Meldung "Das Programm schließt automatisch" nach eine Minute und Excel schließt sich erst nach 6 Minuten. Wo ist der Zeitwert für die Meldung hinterlegt? Ich hätte gerne das die Meldung nach 5 Minuten kommt und das sich Excel dann nach einer Minute schließt. Vielen Dank im voraus !




Option Explicit

Public dteCloseTime As Date, blnCloseNow As Boolean

Public Sub DoClose()
Dim strMsg As String
If blnCloseNow = False Then
strMsg = "Das Programm schließt automatisch" & vbCrLf & _
""
CreateObject("WScript.Shell").PopUp strMsg, 2, ThisWorkbook.Name, _
vbOKOnly + vbInformation + vbSystemModal
blnCloseNow = True
dteCloseTime = Now + TimeSerial(0, 5, 0)
Application.OnTime dteCloseTime, "DoClose"
Else
If Workbooks.Count = 1 Then
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
Application.Quit
Else
ThisWorkbook.Close True
End If
End If
End Sub

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel automatisch schließen ?
22.08.2024 11:52:39
volti
Hallo,

die beiden Zeiten sind in dem rot fettmarkierten Codeteil definiert.

CreateObject("WScript.Shell").PopUp strMsg, 2, ThisWorkbook.Name, _
vbOKOnly + vbInformation + vbSystemModal

dteCloseTime = Now + TimeSerial(0, 5, 0)

Gruß
Karl-Heinz
Anzeige
AW: Excel automatisch schließen ?
22.08.2024 13:04:45
xcom
Hi,

obwohl ich die Zahl 2 in z.B. 3 geändert und gespeichert habe ist die Meldung trotzdem nach einer Minute gekommen ?
AW: Excel automatisch schließen ?
22.08.2024 14:07:28
volti
Hallo,

ich kann Deine Aussage so nicht nachvollziehen.

Lt. Code kommt nach Aufruf der Prozedur die Messagebox (Meldung) sofort und bleibt für 2 Sekunden bestehen.
Danach wird ein Timer mit 5 Minuten Laufzeit gesetzt, der dann nach Ablauf (also 5 Minuten) Excel schließt.
Schließung von Excel also nach 5 Minuten und 2 Sekunden.

Die Steuerung erfolgt anhand der Variablen blnCloseNow, die zunächst false sein muss.

Gruß
Karl-Heinz
Anzeige
AW: Excel automatisch schließen ?
22.08.2024 14:26:57
volti
Hier noch mal eine etwas gestraffte, veränderte Version....
Public blnCloseNow As Boolean


Public Sub DoClose()
Const ciZeit As Long = 5 ' Timeout in Minuten

If blnCloseNow = False Then
CreateObject("WScript.Shell").PopUp _
"Das Programm schließt automatisch in" & Str$(ciZeit) & " Minuten", _
2, ThisWorkbook.Name, vbInformation + vbSystemModal
blnCloseNow = True
Application.OnTime Now + TimeSerial(0, iZeit, 0), "DoClose"
Else
If Workbooks.Count = 1 Then
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close True
End If
End If
End If
End Sub


Gruß KH
Anzeige
AW: Excel automatisch schließen ?
23.08.2024 08:25:45
xcom
Hallo VOLTI,

Danke für deine Hilfe, im Prinzip hast du mir weiter geholfen.

jedoch die gestraffte Version von dir hat leider nicht funktioniert, ich habe den Text im Modul einfach ausgetauscht, wahrscheinlich war das nicht richtig?
AW: Excel automatisch schließen ?
23.08.2024 08:57:59
volti
Nein xcom,

Du hast keinen Fehler gemacht. Mir ist da leider ein kleiner Fehler reingerutscht. Probiere es hiermit noch mal.
Public blnCloseNow As Boolean


Public Sub DoClose()
Const ciZeit As Long = 5 ' Timeout in Minuten

If blnCloseNow = False Then
CreateObject("WScript.Shell").PopUp _
"Das Programm schließt automatisch in" & Str$(ciZeit) & " Minuten", _
2, ThisWorkbook.Name, vbInformation + vbSystemModal
blnCloseNow = True
Application.OnTime Now + TimeSerial(0, iZeit, 0), "DoClose"
Else
If Workbooks.Count = 1 Then
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close True
End If
End If
End Sub


Aber zu Deiner Erstaussage zurück: Ich denke, es macht wenig Sinn, sofort eine 2-Sekündige Msgbox anzuzeigen und dann ein minutenlanges Warten im Hintergrund auf die Beendigung von Excel, oder. Da hat man das doch schon wieder vergessen. :-)


Wenn Du magst, kannst Du Dir auch gerne diese Version hier mal anschauen.
https://www.clever-excel-forum.de/Thread-Excel-schliessen-nach-Timeout-mit-Countdown

Diese Version stößt per Timer eine ggf. länge Watezeit an, um dann eine Msgbox anzuzeigen, die einen Countdown zeigt und hiermit den User über das bevorstehende Schließen zu informieren. Der User hätte (bei Bedarf) hier auch die Möglichkeit den Beenden-Prozess zu abzubrechen.

viele Grüße
KH
Anzeige
AW: Excel automatisch schließen ?
23.08.2024 10:12:02
xcom
Tut mir leid, aber es passiert immer noch nichts.
AW: Excel automatisch schließen ?
23.08.2024 10:23:20
volti
So,

dieses jetzt bei mir getestet und läuft.
Public blnCloseNow As Boolean


Public Sub DoClose()
Const ciZeit As Long = 5 ' Timeout in Minuten

If blnCloseNow = False Then
CreateObject("WScript.Shell").PopUp _
"Das Programm schließt automatisch in" & Str$(ciZeit) & " Minuten", _
2, ThisWorkbook.Name, vbInformation + vbSystemModal
blnCloseNow = True
Application.OnTime Now + TimeSerial(0, ciZeit, 0), "DoClose"
Else
If Workbooks.Count = 1 Then
If ThisWorkbook.Saved = False Then ThisWorkbook.Save
Application.Quit
Else
ThisWorkbook.Close True
End If
End If
End Sub


Gruß
KH
Anzeige
AW: Excel automatisch schließen ?
23.08.2024 10:42:57
xcom
Hallo,

habe das so eingefügt es passiert aber nach 5 min. nichts. Wie gesagt ich habe keine Ahnung was hier tue, ich kopiere nur Texte


Userbild
AW: Excel automatisch schließen ?
23.08.2024 10:59:38
volti
Was heißt: Es passiert nichts?

Ablauf:
1. Eine Msgbox erscheint sofort für 2 Sekunden
2. nach 5 Minuten
Excel wird geschlossen, wenn nur eine Mappe auf ist.
oder
aktuelle Mappe wird geschlossen, andere offene Mappen bleiben aktiv, Excel bleibt aktiv

Vorausetzung: blnCloseNow ist false.
Das ist beim erstmaligen Aufruf gewährleistet. Und dann wird die Mappe ja geschlossen.

Was davon geht nicht?

Gruß KH
Anzeige
AW: Excel automatisch schließen ?
23.08.2024 11:49:59
xcom
Also wenn "DoClose" umstelle und "Sub ausführen" ausführe dann funktioniert das genau so wie du es beschrieben hast, aber wenn ich die Exceldatei ganz normal starte passiert nix, also es schließt sich nicht.

Wie erfühle ich den die Vorausetzung: blnCloseNow ist false. ?
AW: Excel automatisch schließen ?
23.08.2024 12:22:55
volti
Naja,

Du musst die Sub "DoClose" schon irgendwann und irgendwie aufrufen.
Entweder manuell, so wie Du es gemacht hast oder über ein Event, sonst passiert da auch nix.

Z.B. beim Öffnen der Arbeitsmappe:

Code in "DieseArbeitsmappe"
Private Sub Workbook_Open()

Call DoClose
End Sub


Das heißt, dass nach Öffnen der Mappe diese nach fünf Minuten wieder geschlossen wird.
Wie sinnvoll das ist, kannst nur Du entscheiden.

Wie erfühle ich den die Vorausetzung: blnCloseNow ist false. ?
blnCloseNow ist zunächst immer false und wird erst beim Durchlauf der Sub DoClose auf true gesetzt.

Gruß
KH
Anzeige
AW: Excel automatisch schließen ?
23.08.2024 13:19:23
xcom
Jetzt funktioniert das, vielen Dank !
AW: Excel automatisch schließen ?
28.08.2024 06:55:54
xcom
Noch eine Frage, wie könnte ich den die Meldung komplett weglassen, weil das nervig ist wenn die Ständig auftaucht. Das Programm soll sich einfach nur schließen nach 10 Minuten.
AW: Excel automatisch schließen ?
28.08.2024 08:18:01
Volti
Moin,
Da brauchst du doch nur die Zeile Create.... weglassen, die die Popupmeldung macht
Anzeige
AW: Excel automatisch schließen ?
28.08.2024 10:40:28
xcom
Habe es mir auch so gedacht und habe es vorher so probiert, da hat es irgendwie nicht funktioniert. Mit deinem Tipp hat es jetzt geklappt??? Danke

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige