14.12.2017, 21:10
(Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2017, 21:10 von ritchie.
Bearbeitungsgrund: Kennwort vergessen
)
Hallo zusammen,
vielleicht kann mir einer bei folgendem Problem helfen: Das Kennwort für den Blattschutz ist laramari
Die anhängende Datei steht zentral auf einem Laufwerk und alle Beteiligten können darauf zugreifen (Informationsvereinfachung).
Ein Makro ist hinterlegt, dass die Datei nach 3 Minuten schließt, damit die Datei wieder verfügbar wird für andere Nutzer.
Die Zellinhalte (Zahlen, Info an den Arzt) werden am Folgetag automatisch gelöscht, wenn die Datei nach 8.51 h geöffnet wird.
Das funktioniert gut, wenn das Datum einstellig ist am Vortag. Auch wenn es zweistellig ist am Vortag. Jedoch beim Wechsel z.B. vom 9.12.auf den 10.12. und vom 30.11. auf den 1.12. löst das Makro nicht aus und finde nicht die Ursache. Ich habe schon im Code "DD.MM.YYYY hh:mm" durch "D.MM.YYYY hh:mm" ersetzt, aber das Problem bleibt.
Ich habe keine Idee, wie ich den Datumswechsel von einstelligen auf zweistelligen Folgetag und umgekehrt einstellen soll, so dass auch dann die Zellinhalte gelöscht werden. Hat vielleicht jemand hier eine Idee?
Das würde mir sehr helfen.
Viele Grüße und vielen Dank für Euer Know How und die Zeit
Ritchie
So sieht der Code aus:
Option Explicit
Private Sub Workbook_Open()
If Format(Now(), "D.MM.YYYY hh:mm") > Format(DateSerial(Year(Now()), Month(Now()), Day(Now())) + TimeSerial(8, 50, 0), "D.MM.YYYY hh:mm") And Format(Range("Datum"), "D.MM.YYYY hh:mm") < Format(DateSerial(Year(Now()), Month(Now()), Day(Now())) + TimeSerial(8, 50, 0), "D.MM.YYYY hh:mm") Then
Daten.Unprotect "laramari"
Range("Eingaben").
ClearContents
Range("Datum").Value = Format(DateSerial(Year(Now()), Month(Now()), Day(Now())) + TimeSerial(Hour(Now()), Minute(Now()), 0), "D.MM.YYYY hh:mm")
Daten.Protect "laramari"
End If
dteCloseTime = Now + TimeSerial(0, 2, 0)
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 2, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 2, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 2, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
vielleicht kann mir einer bei folgendem Problem helfen: Das Kennwort für den Blattschutz ist laramari
Die anhängende Datei steht zentral auf einem Laufwerk und alle Beteiligten können darauf zugreifen (Informationsvereinfachung).
Ein Makro ist hinterlegt, dass die Datei nach 3 Minuten schließt, damit die Datei wieder verfügbar wird für andere Nutzer.
Die Zellinhalte (Zahlen, Info an den Arzt) werden am Folgetag automatisch gelöscht, wenn die Datei nach 8.51 h geöffnet wird.
Das funktioniert gut, wenn das Datum einstellig ist am Vortag. Auch wenn es zweistellig ist am Vortag. Jedoch beim Wechsel z.B. vom 9.12.auf den 10.12. und vom 30.11. auf den 1.12. löst das Makro nicht aus und finde nicht die Ursache. Ich habe schon im Code "DD.MM.YYYY hh:mm" durch "D.MM.YYYY hh:mm" ersetzt, aber das Problem bleibt.
Ich habe keine Idee, wie ich den Datumswechsel von einstelligen auf zweistelligen Folgetag und umgekehrt einstellen soll, so dass auch dann die Zellinhalte gelöscht werden. Hat vielleicht jemand hier eine Idee?
Das würde mir sehr helfen.
Viele Grüße und vielen Dank für Euer Know How und die Zeit
Ritchie
So sieht der Code aus:
Option Explicit
Private Sub Workbook_Open()
If Format(Now(), "D.MM.YYYY hh:mm") > Format(DateSerial(Year(Now()), Month(Now()), Day(Now())) + TimeSerial(8, 50, 0), "D.MM.YYYY hh:mm") And Format(Range("Datum"), "D.MM.YYYY hh:mm") < Format(DateSerial(Year(Now()), Month(Now()), Day(Now())) + TimeSerial(8, 50, 0), "D.MM.YYYY hh:mm") Then
Daten.Unprotect "laramari"
Range("Eingaben").
ClearContents
Range("Datum").Value = Format(DateSerial(Year(Now()), Month(Now()), Day(Now())) + TimeSerial(Hour(Now()), Minute(Now()), 0), "D.MM.YYYY hh:mm")
Daten.Protect "laramari"
End If
dteCloseTime = Now + TimeSerial(0, 2, 0)
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 2, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 2, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
Application.OnTime dteCloseTime, "DoClose", , False
dteCloseTime = Now + TimeSerial(0, 2, 0)
blnCloseNow = False
Application.OnTime dteCloseTime, "DoClose"
End Sub