Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 1
Default Lock sheets automatically

Hi everyone,
I have 26 fortnightly timesheets in a workbook for every staff and would
like to lock each timesheet after some days.Can you please help me to fix my
code as the follows:

Select Case s_worksheet
Case "TS1", "TS2", "TS3"
If (DateDiff("d", B12, Date) 6) Then
s_worksheet.Unprotect "admin"

s_worksheet.Range("C6:C12,D6:D12,F6:F12,G6:G10,H6: H10,I6:I10").Locked = True
s_worksheet.Protect "admin"
End If
Case Else: End
End Select


Many thanks for you help in advance


  #2   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 35,218
Default Lock sheets automatically

Maybe...

Dim s_worksheet As Worksheet

For Each s_worksheet In ActiveWorkbook.Worksheets
Select Case UCase(s_worksheet.Name)
Case "TS1", "TS2", "TS3"
If DateDiff("d", s_worksheet.Range("B12").Value, Date) 6 Then
s_worksheet.Unprotect "admin"
s_worksheet.Range("C6:C12,D6:D12,F6:F12,G6:G10,H6: H10,I6:I10") _
.Locked = True
s_worksheet.Protect "admin"
End If
End Select
Next s_worksheet

Using End as in:
Case Else: End

Is usually a very bad idea. It resets public/static variables. There are nicer
ways to exit a routine.



Thu Ng wrote:

Hi everyone,
I have 26 fortnightly timesheets in a workbook for every staff and would
like to lock each timesheet after some days.Can you please help me to fix my
code as the follows:

Select Case s_worksheet
Case "TS1", "TS2", "TS3"
If (DateDiff("d", B12, Date) 6) Then
s_worksheet.Unprotect "admin"

s_worksheet.Range("C6:C12,D6:D12,F6:F12,G6:G10,H6: H10,I6:I10").Locked = True
s_worksheet.Protect "admin"
End If
Case Else: End
End Select

Many thanks for you help in advance


--

Dave Peterson
  #3   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 2,203
Default Lock sheets automatically

Decide when you want to make the check for the date 6 days. Two logical
choices would seem to be the
Workbook_Open()
or the
Workbook_BeforeClose()
events.

Once you make that decision, simply 'wrap' your existing Select Case block
in a loop that tests each worksheet.

The Workbook_Open() event would look something like this

Private Sub Workbook_Open()
Dim s_worksheet As Worksheet
For Each s_worksheet In ThisWorkbook.Workbooks
Select Case s_worksheet.Name
Case Is = "TS1", "TS2", "TS3"
If (DateDiff("d", s_worksheet.Range("B12"), Date) 6) Then
s_worksheet.Unprotect "admin"
s_worksheet.Range("C6:C12,D6:D12,F6:F12,G6:G10,H6: H10,I6:I10").Locked = True
s_worksheet.Protect "admin"
End If
End Select
Next
End Sub


"Thu Ng" wrote:

Hi everyone,
I have 26 fortnightly timesheets in a workbook for every staff and would
like to lock each timesheet after some days.Can you please help me to fix my
code as the follows:

Select Case s_worksheet
Case "TS1", "TS2", "TS3"
If (DateDiff("d", B12, Date) 6) Then
s_worksheet.Unprotect "admin"

s_worksheet.Range("C6:C12,D6:D12,F6:F12,G6:G10,H6: H10,I6:I10").Locked = True
s_worksheet.Protect "admin"
End If
Case Else: End
End Select


Many thanks for you help in advance


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to lock several sheets including af password? Jane Excel Discussion (Misc queries) 5 November 27th 07 07:57 AM
How do I lock several sheets Jane Excel Discussion (Misc queries) 4 November 23rd 07 01:11 PM
Why does caps lock automatically turn on? SJ Excel Discussion (Misc queries) 1 May 25th 06 11:51 PM
Automatically Combining Sheets andyiain Excel Discussion (Misc queries) 1 April 20th 06 10:41 PM
How do I lock a cell automatically after it has data entered. Dandy Excel Discussion (Misc queries) 0 March 30th 06 12:39 PM


All times are GMT +1. The time now is 02:29 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"