View Single Post
  #9   Report Post  
Posted to microsoft.public.excel.programming
Jim Thomlinson Jim Thomlinson is offline
external usenet poster
 
Posts: 5,939
Default Protect Macros From inadvertent Use

Since it does not sound mission critical I would write two snipets of code.
One to hide all of the buttons and the other to unhide the buttons. Place a
reference to the hide procedure in the before close event. This will ensure
that the buttons are always hidden when the file is closed.

To unhide the buttons we can do one of a couple of things each called form
the on open event in Thisworkbook. Check Environ("UserName") (windows login
name) against a pre-populated list that is in a very hidden sheet in the
workbook. If the name is found then call the unhide routine. Another
possibility is to place a blank Text file on any machines where you want the
buttons to be shown. The file is just a flag. Put the file somewhere in a
directory that you create. You can then write some very easy code to verify
if the file exists. If it does then unhide the buttons. You can create a
batch file to create the directory and the empty text file if you want to get
fancy.

To unhide the buttons it depends what kind of buttons you have...
From the control toolbox...
Sheets("Sheet1").CommandButton1.Visible = false
From the forms toolbar...
Sheets("Sheet1").Buttons("Button 1").Visible = False

I am affraid I gotta go home now so if you get stuck perhaps someone else
can help you or post back tomorrow...
--
HTH...

Jim Thomlinson


"Dean" wrote:

Its not data that needs to be protected, it's mostly, that they don't
corrupt the equations. And we're not looking for total protection, just
enough to deter the non-expert. Is it one of those things by holding down
the shift key, they could defeat?

So, any hints for a password upon opening that will show macro buttons would
be appreciated. Or, failing that, I could probably just delete the
buttons - there's only about 7 of them.

Thanks, much, Jim!
Dean

"Jim Thomlinson" wrote in message
...
Depends on how critical the data that you are sending out is. If this is
very
confidential then you are going to need to rethink the solution as no
matter
what I give you it can be defeated. Code and Excel are both inherently
easy
to defeat for anyone with a strong enough desire... In that case you will
need to exprt out the data from this spreadsheet into a new workbook that
contains only what you want the end user to see. Otherwise if it is just a
matter of being protected for convenience then there are a couple of
routes
taht we could follow including a password on open that unhides the
buttons...
--
HTH...

Jim Thomlinson


"Dean" wrote:

I also have clickable macro buttons. I suppose I would need to delete
them,
right?


"Jim Thomlinson" wrote in
message
...
At the top of the module where the code resides add

Option Private Module

This will keep all of the sub procedures and functions in the module
private
so that they do not show up in the macro list...
--
HTH...

Jim Thomlinson


"MSweetG222" wrote:

Is it possible to save the worksheets to a different workbook that
does
not
contain your code? That way they never even have access to it.
--
Thx
MSweetG222



"Dean" wrote:

I password protected my macros so no one can edit them but,
occasionally, I
want to send the file somewhere and I don't want them to be able to
even run
the macros, particularly one that takes off all the password
protection!

What is the easiest way to ensure they won't be able to run macros,
short of
deleting all of them?

Thanks!
Dean