Prevent Save As

G

Guest

I am hoping that someone can help me with this problem.

Is there anyway to prevent a user from doing File - Save As? (preferably
using macros)

I am happy for them to make changes to a workbook, but do not want them to
be able to create different copies.

Thanks for your help
 
G

Guest

Go to the ThisWorkbook module and choose Workbook from the first dropdown at
the top of the module window (rather than General). Choose BeforeSave from
the righthand dropdown: this is a macro that will run automatically when
someone attempts to save the file. The following cancels the whole save
operation if the user chooses Save As:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then Cancel = True
End Sub
 
D

Dave Peterson

You won't be able to stop them.

Heck, they could go into Windows explorer and copy that file and put it anywhere
they want.
 
S

Simon Lloyd

You could have the Auto_Open check the filepath if it is different t
the one hardcoded then Kill the application, that way any other copie
that are made and stored else where will be deleted when they ar
opened....................or something like that..........it's just
thought!

Regards,
Simo
 
D

Dave Peterson

And if macros are disabled (or the auto_open/workbook_open procedures are
disabled), then the user can still do what they want.

And macro security isn't too difficult to break--so even protecting the project
wouldn't stop any person really interested.
 
S

Simon Lloyd

How about opening one workbook to call another, that way if macro'
aren't enabled it will never call the other workbook but if it doe
then the protection of the filepath check and the save as disable
should afford some better security than having it all in on
workbook.................anyway i dont know why i'm professing abou
the rights and wrongs because when it comes to programming im as thic
as the next guy!

Regards,

Simon
 
D

Dave Peterson

Yep. That's a common suggestion. But since the project protection of the
opening workbook can be broken, then the password to the real workbook can be
found.

Excel's security isn't really meant to protect intellectual property.
 
I

idyllicabyss

In the past, I have created a new sheet to use as a splash screen and
included the words "This Document requires Macros to be enabled" or
similar on coloured cells cos it looks pretty. All other sheets are
hidden using

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
For Each sh In ActiveWorkbook.Sheets
If sh.Name <> "Sheet2" Then
sh.Visible = 2
Else
sh.Visible = -1
End If
Next sh
End Sub

You need to run the code in reverse when opening and if you also add in
a line to close the workbook if the Filename and Path are not as
expected then it would be pretty tight. Be sure to use sheet protection
and VBA project protection and most people won't have the inclination
to hack into it.
 

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