ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Preventing people from viewing specific worksheets (https://www.excelbanter.com/excel-programming/351199-preventing-people-viewing-specific-worksheets.html)

k1ckn1ck

Preventing people from viewing specific worksheets
 
Right i have a excel document with 54 worksheets.

I want to password protect the first two worksheets with an identical
password.

Is it possible and how.

I did find some code to do it

Dim sLast As Object

Private Sub Workbook_Open()
'Ensure Sheet1 is not the active sheet upon opening.
If Sheet1.Name = ActiveSheet.Name Then Sheet2.Select
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim strPass As String
Dim lCount As Long

If Sh.CodeName < "Sheet1" Then
'Set sLast variable to the last active sheet _
This is then used to return the user to the _
last sheet they were on if password is not known _
or they Cancel.
Set sLast = Sh

Else
'Hide Columns
Sheet1.Columns.Hidden = True
'Allow 3 attempts at password
For lCount = 1 To 3
strPass = InputBox(Prompt:="Password Please",
Title:="PASSWORD REQUIRED")
If strPass = vbNullString Then 'Cancelled
sLast.Select
Exit Sub
ElseIf strPass < "Secret" Then 'InCorrect password
MsgBox "Password incorrect", vbCritical,
"Ozgrid.com"
Else 'Correct Password
Exit For
End If
Next lCount

If lCount = 4 Then 'They use up their 3 attempts
sLast.Select
Exit Sub
Else 'Allow viewing
Sheet1.Columns.Hidden = False
End If
End If


End Sub all it does is brings an error 1004 up


Tom Ogilvy

Preventing people from viewing specific worksheets
 
That would indicate that there is an error in your code.

--
Regards,
Tom Ogilvy


"k1ckn1ck" wrote in message
oups.com...
Right i have a excel document with 54 worksheets.

I want to password protect the first two worksheets with an identical
password.

Is it possible and how.

I did find some code to do it

Dim sLast As Object

Private Sub Workbook_Open()
'Ensure Sheet1 is not the active sheet upon opening.
If Sheet1.Name = ActiveSheet.Name Then Sheet2.Select
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim strPass As String
Dim lCount As Long

If Sh.CodeName < "Sheet1" Then
'Set sLast variable to the last active sheet _
This is then used to return the user to the _
last sheet they were on if password is not known _
or they Cancel.
Set sLast = Sh

Else
'Hide Columns
Sheet1.Columns.Hidden = True
'Allow 3 attempts at password
For lCount = 1 To 3
strPass = InputBox(Prompt:="Password Please",
Title:="PASSWORD REQUIRED")
If strPass = vbNullString Then 'Cancelled
sLast.Select
Exit Sub
ElseIf strPass < "Secret" Then 'InCorrect password
MsgBox "Password incorrect", vbCritical,
"Ozgrid.com"
Else 'Correct Password
Exit For
End If
Next lCount

If lCount = 4 Then 'They use up their 3 attempts
sLast.Select
Exit Sub
Else 'Allow viewing
Sheet1.Columns.Hidden = False
End If
End If


End Sub all it does is brings an error 1004 up




k1ckn1ck

Preventing people from viewing specific worksheets
 
i figured there was an error. I just dont know enough about this kind
of thing to find the error


Tom Ogilvy

Preventing people from viewing specific worksheets
 
What line of code is highlighted when you get the error?

--
Regards,
Tom Ogilvy


"k1ckn1ck" wrote in message
oups.com...
i figured there was an error. I just dont know enough about this kind
of thing to find the error




k1ckn1ck

Preventing people from viewing specific worksheets
 
This line
"
Sheet1.Columns.Hidden = True
"

I am currently using office 2003 but this spreadsheet will mainly be
used by people on office 2000


Tom Ogilvy

Preventing people from viewing specific worksheets
 
the code worked for me.

Do you have a sheet with a codename of Sheet1? Is the code in the
ThisWorkbook Module?

--
Regards,
Tom Ogilvy

"k1ckn1ck" wrote in message
ups.com...
This line
"
Sheet1.Columns.Hidden = True
"

I am currently using office 2003 but this spreadsheet will mainly be
used by people on office 2000




k1ckn1ck

Preventing people from viewing specific worksheets
 
Ok i have got it to work but now i cannot see the find the password.

What is the password inthe baove code and do i just change it in the
code for it to change on the file


k1ckn1ck

Preventing people from viewing specific worksheets
 
right i now have it working.

Dim sLast As Object


Private Sub Workbook_Open()
'Ensure Sheet1 is not the active sheet upon opening.
If Sheet1.Name = ActiveSheet.Name Then Sheet3.Select
End Sub


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim strPass As String

Dim lCount As Long


If Sh.CodeName < "Sheet1" Then
Set sLast = Sh
Else
'Hide Columns
Sheet1.Columns.Hidden = True
'Allow 3 attempts at password
For lCount = 1 To 3
strPass = InputBox(Prompt:="Insert Password",
Title:="PASSWORD REQUIRED")
If strPass = vbNullString Then 'Cancelled
sLast.Select
Exit Sub
ElseIf strPass < dollars "Secret" Then 'InCorrect
password
MsgBox "Password incorrect", vbCritical,
"Ozgrid.com"
Else 'Correct Password
Exit For
End If
Next lCount


If lCount = 4 Then 'They use up their 3 attempts
sLast.Select
Exit Sub
Else 'Allow viewing
Sheet1.Columns.Hidden = False
End If
End If


End Sub

How would i edit this code to password protect sheet1 and sheet2

Many thanks

Nick


Tom Ogilvy

Preventing people from viewing specific worksheets
 
It doesn't use excel's password capabilities. It hard codes a password in
the code itself:

strPass < "Secret"

--
Regards,
Tom Ogilvy

"k1ckn1ck" wrote in message
oups.com...
Ok i have got it to work but now i cannot see the find the password.

What is the password inthe baove code and do i just change it in the
code for it to change on the file




Tom Ogilvy

Preventing people from viewing specific worksheets
 
Dim sLast As Object


Private Sub Workbook_Open()
'Ensure Sheet1 is not the active sheet upon opening.
If Sheet1.Name = ActiveSheet.Name Then Sheet3.Select
End Sub


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim strPass As String

Dim lCount As Long


If Sh.CodeName < "Sheet1" and _
sh.CodeName < "Sheet2" Then
Set sLast = Sh
Elseif sh.CodeName = "Sheet1" Then
'Hide Columns
Sheet1.Columns.Hidden = True
'Allow 3 attempts at password
For lCount = 1 To 3
strPass = InputBox( _
Prompt:="Insert Password", _
Title:="PASSWORD REQUIRED")
If strPass = vbNullString Then 'Cancelled
sLast.Select
Exit Sub
ElseIf strPass < "Secret" Then 'InCorrect password
MsgBox "Password incorrect", vbCritical,"Ozgrid.com"
Else 'Correct Password
Exit For
End If
Next lCount


If lCount = 4 Then 'They use up their 3 attempts
sLast.Select
Exit Sub
Else 'Allow viewing
Sheet1.Columns.Hidden = False
End If
Elseif sh.CodeName = "Sheet2" then
'Hide Columns
Sheet2.Columns.Hidden = True
'Allow 3 attempts at password
For lCount = 1 To 3
strPass = InputBox( _
Prompt:="Insert Password", _
Title:="PASSWORD REQUIRED")
If strPass = vbNullString Then 'Cancelled
sLast.Select
Exit Sub
ElseIf strPass < "Secret" Then 'InCorrect password
MsgBox "Password incorrect", vbCritical,"Ozgrid.com"
Else 'Correct Password
Exit For
End If
Next lCount


If lCount = 4 Then 'They use up their 3 attempts
sLast.Select
Exit Sub
Else 'Allow viewing
Sheet2.Columns.Hidden = False
End If


End If


End Sub

Untested, but if you say you have it working, then this modification should
work.

--
Regards,
Tom Ogilvy

"k1ckn1ck" wrote in message
ups.com...
right i now have it working.

Dim sLast As Object


Private Sub Workbook_Open()
'Ensure Sheet1 is not the active sheet upon opening.
If Sheet1.Name = ActiveSheet.Name Then Sheet3.Select
End Sub


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim strPass As String

Dim lCount As Long


If Sh.CodeName < "Sheet1" Then
Set sLast = Sh
Else
'Hide Columns
Sheet1.Columns.Hidden = True
'Allow 3 attempts at password
For lCount = 1 To 3
strPass = InputBox(Prompt:="Insert Password",
Title:="PASSWORD REQUIRED")
If strPass = vbNullString Then 'Cancelled
sLast.Select
Exit Sub
ElseIf strPass < dollars "Secret" Then 'InCorrect
password
MsgBox "Password incorrect", vbCritical,
"Ozgrid.com"
Else 'Correct Password
Exit For
End If
Next lCount


If lCount = 4 Then 'They use up their 3 attempts
sLast.Select
Exit Sub
Else 'Allow viewing
Sheet1.Columns.Hidden = False
End If
End If


End Sub

How would i edit this code to password protect sheet1 and sheet2

Many thanks

Nick





All times are GMT +1. The time now is 07:20 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com