Password

D

dafydd

Can you help please?
To password protect a worksheet I am using the following code:

Private Sub Worksheet_Activate()
'password protect your VBA project
Dim strPassword As String
On Error Resume Next
Const Password = "dafydd"

Me.Protect Password:=Password
Me.Columns.Hidden = True

strPassword = InputBox("Enter password to view this sheet")

If strPassword = "" Then
Me.Previous.Select
Exit Sub
ElseIf strPassword <> Password Then
MsgBox "Password Incorrect", , "Wrong password"
Me.Previous.Select
Exit Sub
Else
Me.Unprotect Password:=Password
Me.Columns.Hidden = False
End If

On Error GoTo 0
End Sub

Private Sub Worksheet_Deactivate()
On Error Resume Next
Me.Columns.Hidden = True
On Error GoTo 0
End Sub

Is there a way I can adjust the code so that the password doesn't actually
show when it is typed?
 
U

Udo

Can you help please?
To password protect a worksheet I am using the following code:

Private Sub Worksheet_Activate()
'password protect your VBA project
Dim strPassword As String
On Error Resume Next
Const Password = "dafydd"

Me.Protect Password:=Password
Me.Columns.Hidden = True

strPassword = InputBox("Enter password to view this sheet")

If strPassword = "" Then
Me.Previous.Select
Exit Sub
ElseIf strPassword <> Password Then
MsgBox "Password Incorrect", , "Wrong password"
Me.Previous.Select
Exit Sub
Else
Me.Unprotect Password:=Password
Me.Columns.Hidden = False
End If

On Error GoTo 0
End Sub

Private Sub Worksheet_Deactivate()
On Error Resume Next
Me.Columns.Hidden = True
On Error GoTo 0
End Sub

Is there a way I can adjust the code so that the password doesn't actually
show when it is typed?

Insert on top the line
Application.Screenupdating = False

and at the end insert
Application.screenupdating = True

Good luck
Udo
 
J

JLatham

Interesting, simple solution - but probably doesn't want to put that
instruction right at the top - right after the Me.Columns.Hidden statement
might be a better place.

I was going to suggest using a UserForm - since the text boxes in a form can
be given a 'password character' as one of their properties - all typed into
the text box are displayed as that character. Basically the
Worksheet_Activate() process would just pull up the userform, as
UserForm1.Show
and pretty much the code dafydd has there now would be in the userform's
code segments, using ActiveSheet instead of Me (since Me would then refer to
the form and not the sheet).

But if the Application.ScreenUpdating =True/False statement do the job for
him, it's much easier to implement at this point.
 
M

Mike H

Hi,

I'm a bit sceptical about applicatin.screenupdating working and input boxes
don't have a password character property but there is a workaround:

http://www.xcelfiles.com/API_09.html

I've used this and it works but I wouldn't bother again it's far to much
hassle when a userform does it using inbuilt functionality.

Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top