25.05.2020, 19:15
Hallo miteinander,
ich habe vor längerer Zeit mit Eurer Hilfe einen Code für meine Datei zusammenstellen können.
(Datei schließen nach Ablauf einer Zeit)
Nun habe ich das Phänomen, dass die Datei sich vor Ablauf der Zeit von selbst schließt, wenn sie nicht im Vordergrund steht.
Sie schließt sich augenscheinlich mit dem Ablauf des eingestellten Zählintervalls von 1min.
(Der Zähler zählt z.B. nicht schneller runter wenn die Datei im Hintergrund ist - getestet mit nur leicht überlagerter Datei)
Lässt man den Timer aus, dann bleibt die Datei im Vorder- wie auch im Hintergrund einwandfrei stehen.
Wenn ich die Bausteine des Timers in eine Beispieldatei einbaue, dann funktioniert der Timer und zählt auch im Hintergrund brav runter.
Meine Frage nun:
Was steht bei "Timer" und "Datei im Hintergrund" im Zusammenhang?
An welcher Ecke könnte ich nach dem Fehler suchen?
Viele Grüße
Klaus
ich habe vor längerer Zeit mit Eurer Hilfe einen Code für meine Datei zusammenstellen können.
(Datei schließen nach Ablauf einer Zeit)
Nun habe ich das Phänomen, dass die Datei sich vor Ablauf der Zeit von selbst schließt, wenn sie nicht im Vordergrund steht.
Sie schließt sich augenscheinlich mit dem Ablauf des eingestellten Zählintervalls von 1min.
(Der Zähler zählt z.B. nicht schneller runter wenn die Datei im Hintergrund ist - getestet mit nur leicht überlagerter Datei)
Lässt man den Timer aus, dann bleibt die Datei im Vorder- wie auch im Hintergrund einwandfrei stehen.
Wenn ich die Bausteine des Timers in eine Beispieldatei einbaue, dann funktioniert der Timer und zählt auch im Hintergrund brav runter.
Meine Frage nun:
Was steht bei "Timer" und "Datei im Hintergrund" im Zusammenhang?
An welcher Ecke könnte ich nach dem Fehler suchen?
Code:
Public interval As Date
Sub timer_halt()
Application.OnTime interval, "myTimer", , False
Call stopp_myTimer
End Sub
Sub myTimer()
If [a4] = 0 Then 'in a4 steht voreingestellt eine 20
On Error Resume Next
Application.OnTime interval, "myTimer", , False
Application.OnTime interval, "stopp_myTimer"
Else
[a4] = [a4] - 1
interval = Now + TimeValue("00:01:00")
Application.OnTime interval, "myTimer"
End If
End Sub
Sub stopp_myTimer()
With ThisWorkbook
.Saved = True
.ChangeFileAccess xlReadOnly
kill .FullName
ThisWorkbook.Close -1
End With
End Sub
Viele Grüße
Klaus