Diskussionsgruppe: Tabellenkalkulation
Guten Tag
Um was es geht:
Ich habe ein Arbeitszeit-Sheet, wo die User selbstständig Ihre arbeitszeit eintragen. Damit man aber nicht wochenlang zurück die Arbeitszeiten verändern kann möchte ich eine automatische sperre einrichten. Dazu habe ich hier aus dem Forum schon folgenden Code entnommen (siehe unten). soweit funktioniert das mit dem timer. nur wenn ich beispielsweise 24h als sperr-timer eingebe, dann sollte man 24h zeit haben die zelle zu bearbeiten. ABER wenn man das sheet schliesst und es gleich wieder öffnet sind wieder alle zellen gesperrt, auch diese wo man noch 23h zeit hätte zu korrigieren.
Da ich in VBA nicht gut bin, hoffe ich, dass mir da jemand helfen kann.
VBA Projekt "DieseArbeitsmappe":
-----------------------------------------------------
Option Explicit
Private Sub Workbook_Open()
Zellen_sperren
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Timer_stoppen
End Sub
StandardModul:
-----------------------------------------------------
Option Explicit
Public Zeitspanne As Variant
Sub Zellen_sperren()
Dim Bereich As Range
For Each Bereich In ActiveSheet.UsedRange.Cells
If WorksheetFunction.CountA(Bereich) <> 0 Then
ActiveSheet.Unprotect ""
Bereich.Locked = True
ActiveSheet.Protect ""
End If
Next
Zeitspanne = Now + TimeValue("00:05:00")
Application.OnTime Zeitspanne, "Zellen_sperren"
End Sub
Sub Timer_stoppen()
Application.OnTime EarliestTime:=Zeitspanne, Procedure:="Zellen_sperren", schedule:=False
End Sub
Von: skillY Datum: 28.12.2006, 11:19
|
|