Password To Run Macro?

  • Thread starter Thread starter garyh
  • Start date Start date
G

garyh

Is there a way to request a password when a macro button is clicked? I
would like to 'lock' down the macros.

Thanks.

G
 
You could create a userform with a password textbox, which has a
PasswordChar character property so that you can mask it.
 
Before your code runs, ask the user for an input, simplest to use an
InputBox then validate the entry against a stored value (password)

simple example......

If InputBox("Enter password to run") <> "MyPassword" Then
MsgBox "Wrong password"
Exit Sub
End If
' rest of your code
 
That is not too bad to do. Set up a global variable in a standard code
module. Create a userform that allows the user to enter a password. On the
text box set the Password Character to *. Now have your macros check to see
if there is a valic password in the global variable. If so then run the
macro. If not then pop us the userform and let them enter the password. Then
double check the password entered and you are good to go...
 
Hi,

You could put this as the first lines of your code which gives you 3 chances
to enter the corrrect case sensitive password. It isn't secure because the
passwoord is visible when entered but even if you use a userform textbox to
mask the passowrd that isn't secure either

Do
response = InputBox("Enter password", "Run Macro")
If response <> "Mypass" Then
x = x + 1
If x > 2 Then Exit Sub
Else
MsgBox "Running macro"
Exit Do
End If
Loop
'your code

Mike
 
if you just want to limit access to macros to your use only, you could as an
idea, do a check on username.

see if this approach may work:

Public Const namecheck As String = "garyh"
Sub mymacro()
Dim myname As String

'get logon name
myname = Environ("UserName")

If myname = namecheck Then

'YOUR MACRO

Else

msg = MsgBox("You Are Not Authorised To Run Macro.", 16, "Warning")

End If
End Sub


if you want to prompt for password then an adding inputbox to probably the
simplest approach.
 
Alt + F11 > VBAProject – Project Properties > Protection > Lock Project for
Viewing (check) then enter a Password and confirm.

Is that what you want or something else?

Ryan--
 
How does the user execute the macro? If by clicking a button then in the code
behind the button don't put the macro, instead put the following:

Sub VarifyPWD()
Dim Pwd As String, PwdEntered As String

Pwd = "MyPassword" ' Modify to your chosen password
PwdEntered = InputBox("Please enter password.")

If UCase(PwdEntered) = UCase(Pwd) Then
macro1 'enter the the name of the macro here
Else
MsgBox "Password not valid!", vbCritical
End If
End Sub

In the above code the password will not be case sensitive, if you want the
password to be case sensitive then skip the UCase function

You could create a userform and the textbox which will be used as the
password input, you can asign password charcters like *, so that other people
cannot see what the user enters.

Hope this helps
 
This one is the same as before, but to avoid the user getting a message -
"Password not valid" when he cancels the Inputbox you should put the
following line of code after the line: 'PwdEntered = InputBox("Please enter
password.")', as follows:

PwdEntered = InputBox("Please enter password.")
If PwdEntered = "" Then Exit Sub
 
What do you mean by "lock down" the macros?

This addition will prevent a macro from running if pword is incorrect but
you must lock the project from viewing if you don't want the users to see
the password by snooping at the VBE

Dim pword As String
pword = InputBox("enter password")
If pword <> "justme" Then
Exit Sub
Else
do your stuff
End If


Gord Dibben MS Excel MVP
 
Back
Top