ich habe praktisch keine VBA Erfahrung und habe mir einen kleinen Code zusammengebaut.
Folgendes Problem:
Eine passwortgeschütze Arbeitsmappe "Master" wird geöffnet und soll alle 5 Minuten automatisch gespeichert werden.
Das funktioniert mit folgendem Code:
Diese Arbeitsmappe
Option Explicit
Private Sub Workbook_Open()
Sheets("Master1").Protect UserInterfaceOnly:=True, Password:="mein schreibschutz Passwort"
Sheets("Master1").EnableOutlining = True ' Für Gliederung
Sheets("Master1").EnableAutoFilter = True ' Für AutoFilter
Call AutoSpeichernEinschalten
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call AutoSpeichernAusschalten
End Sub
Modul1
Option Explicit
Dim ZeitZuSpeichern As Date
Sub Speichern()
ThisWorkbook.Save
Call AutoSpeichernEinschalten
End Sub
Sub AutoSpeichernEinschalten()
ZeitZuSpeichern = Now + TimeSerial(0, 5, 0) 'hier Intervall einstellen (h, m, s)
Application.OnTime ZeitZuSpeichern, "Speichern"
End Sub
Sub AutoSpeichernAusschalten()
On Error Resume Next
Application.OnTime ZeitZuSpeichern, "Speichern", , False
End Sub
-------------------------------------------------------------------------------------
Jetzt zum Problem:
Wenn die Arbeitsmappe schreibgeschützgeöffnet wird, versucht er sie aber dennoch zu speichern dies geht natürich dann nicht und es kommt zu einem Laufzeitfehler.
Desweiteren wird der Code auch ausgeführt wenn ich eine andere Arbeitsmappe geöffnet habe, problematisch wird es wenn jemand anderes Master 1 bereits geöffnet hat.
Was muss ich in meinem Code verändern damit das automatische speichern nur ausgeführt wird wenn man die Arbeitsmappe auch tatsächlich geöffnet hat und auch nicht schreibgeschützt ist?
Für eure Mühe vielen Dank.
Gruß Timo