View Single Post
  #12   Report Post  
Posted to microsoft.public.excel.programming
Stu[_31_] Stu[_31_] is offline
external usenet poster
 
Posts: 27
Default protect - macro?

The problem with that is that I don't have the oldest version of XL that it
will be used on. and the code I decided on is the following way round
(exactly the same as yours just moved around a little):

Sub MainHide()
Application.ScreenUpdating = False
Main.UnProtect Password:="Yo"
Dim hideRows As Range
With Range("G3:G2401")
.EntireRow.Hidden = False
.AutoFilter Field:=1, Criteria1:="="
On Error Resume Next
Set hideRows = .Offset(1, 0).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
Selection.AutoFilter
If Not hideRows Is Nothing Then hideRows.EntireRow.Hidden = True
Range("G202,G402,G602,G802,G1002,G1202,G1402," & _
"G1602,G1802,G2002,G2202,G2402").EntireRow.Hid den = False
Main.Protect Password:="Yo"
Application.ScreenUpdating = True
End Sub

Thanks
--
Stu


"Tom Ogilvy" wrote in message
...
Right where you show it:

Sub Main()
Dim hideRows As Range
Application.ScreenUpdating = False
Activesheet.Unprotect Password:="Yo"
With Range("G3:G2401")
.EntireRow.Hidden = False
.AutoFilter Field:=1, Criteria1:="="
On Error Resume Next
Set hideRows = .Offset(1, 0).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
Selection.AutoFilter
If Not hideRows Is Nothing Then hideRows.EntireRow.Hidden = True
Range("G202,G402,G602,G802,G1002,G1202,G1402," & _
"G1602,G1802,G2002,G2202,G2402").EntireRow.Hid den = False
Application.ScreenUpdating = True
Application.Protect Password:="Yo"
End Sub

Might want to find out. You should be doing your development in the

oldest
version of excel where the application will be used.

--
Regards,
Tom Ogilvy


Stu wrote in message
...
I haven't got a clue what the users would be using, but the users should
have pretty up-to-date software and OS.

And, where do I put the

Sheets(1).Unprotect Password:="Yo"
'autofilter, hide, stuff
Sheets(1).Protect Password:="Yo"

Thanks
--
Stu


"Tom Ogilvy" wrote in message
...
Why are you talking about users. You said *You* would be using

xl2002,
so
limitations of xl97 were of no consequence. Now you have users - will

they
all also be using xl2002? If not, you have more surprises headed your

way.

Using userinterfaceonly will not work with your autofilter code.
Userinterfaceonly only works with an already existing filter. There

is
no
reason the unprotect shouldn't work if you spell it correctly and the
password is the correct password.

The other method I showed will work with userinterfaceonly, of course.

--
Regards,
Tom Ogilvy



Stu wrote in message
...
That is true I am too paranoid and for no reason, because like you

say
it
is
to prevent fools from messing with things they shouldn't but I know

a
lot
of
fools who will probably venture into the code and mess that up too.

And I cant seem to get the:

Sheets(1).Protect Password:="Yo", _
UserInterfaceOnly:=True

or

Sheets(1).Unrotect Password:="Yo"
'autofilter, hide, stuff
Sheets(1).Protect Password:="Yo"

to work.

Thanks
--
Stu
"Harald Staff" wrote in message
...
You can prevent that in the VB editor menu Tools VBA proj

Properties

Protection. But
I'd prefer hiding or masking the password instead; unlocked code

may
provide you with good
debugging information until the code is perfect.

Anyway, you're too paranoid. Excel is not safe and sheet passwords

can
be
cracked easily.
Security is basically there to prevent fools from doing severe

damage
to
formulas, not to
protect our digital rights.

--
HTH. Best wishes Harald
Followup to newsgroup only please.

"Stu" wrote in message
...
What if the user looks in the code? the password is viewable.


--
Stu


"Harald Staff" wrote in message
...
"It" says ???

You have two options. One is protecting by code, userinterface

only:

Sheets(1).Protect Password:="Yo", _
UserInterfaceOnly:=True

Now macros can do more things than the user is allowed.

Or you can simply have your macro unprotect-work-protect like

this

Sheets(1).Unrotect Password:="Yo"
'autofilter, hide, stuff
Sheets(1).Protect Password:="Yo"

--
HTH. Best wishes Harald
Followup to newsgroup only please.

"Stu" wrote in message
...
Hey guys,
I have this macro and I want my worksheet to be protected

but
it
says I
am
not able to protect the sheet because of the macro.
Is there any way around it?

Thanks
--
Stu