passwords - userforms - remembering password has been entered

R

Roger on Excel

[Excel 2003]

I have a spreadsheet which uses forms to enter and display data. The
Spreadsheet uses a main page form "frmDashboard" from which other userforms
are activated using command buttons. The form frmDashoboard remains open in
the background as a desktop while the user activates the other forms.

I am looking at various methods to password protect the opening of other
forms from the main useform frmDashboard and I use the following code to do
this:

Private Sub CommandButton1_Click()

Dim i_pwd As String
i_pwd = InputBox("Please Enter Password" & vbCrLf & "to activate form")
If i_pwd = "password" Then
UserForm2.Show
Exit Sub
Else
MsgBox "Incorrect password; no action taken.", vbInformation
End If
End Sub

This works well enough however my problem is that the password has to be
entered everytime the command button is pressed (when userform2 is closed).

Is there a way to alter the code so that it remembers that the password has
been entered once? That way it wont keep asking for it.

I would need the algorithm to reset each time the spreadsheet opens, but I
guess it would be okay as long as it remembers it as long as frmDashboard is
open.

Can anyone help?
 
J

john

Roger,
Not tested but an approach like following may do what you want. By placing
variable outside procedure, it should hold it's value so long as main form
stays open.

Also, as you are using an inputbox, your password characters are not
marsked. You could consider using another UserForm with textbox char property
set to "*" or have a look at this site which provides a solution to masking
inputbox characters.

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

Hope helpful

Dim pwrd As String
Private Sub CommandButton1_Click()

If pwrd = "" Then

pwrd = InputBox("Please Enter Password" & vbCrLf & "to activate form")

If pwrd <> i_pwd Then

MsgBox "Incorrect password; no action taken.", vbInformation

pwrd = ""

Exit Sub

End If

End If

If pwrd = i_pwd Then UserForm2.Show

End Sub
 
J

john

sorry,
missed a line of code when i pasted

Const i_pwd As String = "password"
Dim pwrd As String
Private Sub CommandButton1_Click()

If pwrd = "" Then

pwrd = InputBox("Please Enter Password" & vbCrLf & "to activate form")

If pwrd <> i_pwd Then

MsgBox "Incorrect password; no action taken.", vbInformation

pwrd = ""

Exit Sub

End If

End If

If pwrd = i_pwd Then UserForm2.Show

End Sub
 
R

Roger on Excel

Thanks John,

This works very nicely for my needs

All the best, Roger

john said:
sorry,
missed a line of code when i pasted

Const i_pwd As String = "password"
Dim pwrd As String
Private Sub CommandButton1_Click()

If pwrd = "" Then

pwrd = InputBox("Please Enter Password" & vbCrLf & "to activate form")

If pwrd <> i_pwd Then

MsgBox "Incorrect password; no action taken.", vbInformation

pwrd = ""

Exit Sub

End If

End If

If pwrd = i_pwd Then UserForm2.Show

End Sub
--
jb


Roger on Excel said:
[Excel 2003]

I have a spreadsheet which uses forms to enter and display data. The
Spreadsheet uses a main page form "frmDashboard" from which other userforms
are activated using command buttons. The form frmDashoboard remains open in
the background as a desktop while the user activates the other forms.

I am looking at various methods to password protect the opening of other
forms from the main useform frmDashboard and I use the following code to do
this:

Private Sub CommandButton1_Click()

Dim i_pwd As String
i_pwd = InputBox("Please Enter Password" & vbCrLf & "to activate form")
If i_pwd = "password" Then
UserForm2.Show
Exit Sub
Else
MsgBox "Incorrect password; no action taken.", vbInformation
End If
End Sub

This works well enough however my problem is that the password has to be
entered everytime the command button is pressed (when userform2 is closed).

Is there a way to alter the code so that it remembers that the password has
been entered once? That way it wont keep asking for it.

I would need the algorithm to reset each time the spreadsheet opens, but I
guess it would be okay as long as it remembers it as long as frmDashboard is
open.

Can anyone help?
 

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