Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

autom. Neustart von Datei

autom. Neustart von Datei
01.09.2022 14:22:41
Datei
Hallo Forum,
mit untem stehendem Makro speichere ich die aktuell geöffnete Excel-Datei alle 30 Sekunden und beende Excle nach 10 Minuten.
Leider startet sich die Datei nach dem Beenden von selbst.
Was muss ich ändern, damit dies nicht mehr geschieht?
Gruß
Chris

Private Sub Workbook_Open()
Application.EnableEvents = True
Application.OnTime Now + TimeValue("00:00:30"), "SaveRV"
Application.OnTime Now + TimeValue("00:10:00"), "CloseMe"
end sub

Sub SaveRV()
Dim myFSO As Object
Dim qFolder As String, tFolder As String
Dim qFile As String
qFile = "XY.xlsx"
'Kill tFolder & qFile
Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.CopyFile qFolder & qFile, tFolder & qFile, True
Application.OnTime Now() + TimeValue("00:00:30"), "SaveRV"
End Sub

Sub CloseMe()
Application.DisplayAlerts = False
Application.WindowState = xlMinimized
ThisWorkbook.Save
Application.Quit
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was muss ich ändern,
01.09.2022 15:05:47
Rudi
Hallo,
du musst die OnTime-Anweisungen auch wieder stoppen.
Gruß
Rudi
AW: Was muss ich ändern,
02.09.2022 06:51:22
Chris
Hallo Rudi,
danke. Wie genau mache ich das? Gruß Chris
AW: Was muss ich ändern,
02.09.2022 08:22:36
Chris
Hallo nochmal,
habs so versucht, aber die Datei wird erneut automatisch gestartet:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On error resume next
Application.OnTime Now + TimeValue("00:00:30"), procedure:="SaveRV", Schedule:=False
Application.quit
end sub

AW: Was muss ich ändern,
02.09.2022 08:44:43
Rudi
Hallo,
die Zeiten müssen exakt sein.
In ein Modul:

  Option Explicit
Public tSave As Date, tClose As Date
Sub SaveRV()
Dim myFSO As Object
Dim qFolder As String, tFolder As String
Dim qFile As String
qFile = "XY.xlsx"
'Kill tFolder & qFile
Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.CopyFile qFolder & qFile, tFolder & qFile, True
tSave = Now() + TimeValue("00:00:30")
Application.OnTime tSave, "SaveRV"
End Sub
Sub CloseMe()
Application.DisplayAlerts = False
Application.WindowState = xlMinimized
Application.OnTime tSave, "saverv", , False
Application.OnTime tClose, "closeme", , False
ThisWorkbook.Save
Application.Quit
End Sub
In DieseArbeitsmappe:

Private Sub Workbook_Open()
Application.EnableEvents = True
tSave = Now + TimeValue("00:00:30")
tClose = Now + TimeValue("00:10:00")
Application.OnTime tSave, "SaveRV"
Application.OnTime tClose, "CloseMe"
End Sub
Gruß
Rudi
Anzeige
AW: Was muss ich ändern,
02.09.2022 09:11:48
Chris
Hallo Rudi,
danke, habe es eingebaut und teste...
Verständnisfrage:
Bei WB_Open: Werden die Makro SaveRV und CloseMe nach einer festgelegten Zeit gestartet. Ist es richtig, dass dies nur genau 1x passiert (Aktives WB wird ja nur einmal geöffnet?) Erst durch die Wiederholung der gleichen Zeit im Makro SaveRV (...30 Sekunden) wird dies immer wieder ausgeführt? Würde man die Zeit im Modul weglassen, würde SaveRV nur beim Start einmal ausgeführt werden?
GRuß
Chris
AW: Was muss ich ändern,
02.09.2022 09:29:32
Chris
... und noch eine Frage:
Mein Workbook Before Clore Ereignis sieht so aus:
ThisWorkbook.Save
Application.Quit.
Mehr nicht.
Müsste hier nicht auch noch der Time SaveRV gestoppt werden? Laut Deinem Makro wird dieser nur im Modul "CLoseMe" gestoppt, was erst nach 30 Miinuten ausgeführt wird.
Beende ich Excel über das Kreuz oben rechts, wird WkBeforeClose ausgeführt, was den Stopp Code nicht enthält.
Daher: im Before Close Ereignis auch
Application.OnTime tSave, "saverv", , False ?
Gruß
Chris
Anzeige
AW: Was muss ich ändern,
02.09.2022 09:33:03
Rudi
dann setz die Beendigung auch ins Beforeclose.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime tSave, "saverv", , False
Application.OnTime tClose, "closeme", , False
End Sub

AW: Was muss ich ändern,
02.09.2022 09:42:28
Chris
Ich erhalte die Fehlermeldung:
1004: Die Methode _OnTime für für das Objekt _Application ist fehlgeschlagen,
sowohl beim manuellen Beenden wie auch nach 30 Minuten bei Close_Me
Noch eine Idee?
Gruß
Chris
AW: Was muss ich ändern,
02.09.2022 13:14:20
Chris
Hat sich geklärt: On Error resume next. Jetzt funktioniert es!
OWT, danke.
Gruß
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige