View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
RS RS is offline
external usenet poster
 
Posts: 113
Default Any macro experts out there?

Dear Arvi,

Thanks for the reply. In my case, even though I have different
passwords for different sheets, I only am using the macro for 1 sheet because
that's the only one that I need to be able to filter and sort. So...my macro
works fine in terms of sorting. I just wanted to make sure that your macro
only protected the one sheet that I needed and didn't affect the other
sheets. You mentioned that with multiple PWs that the "best solution will be
to store sheet names and according passwords into 2D array" and then you gave
a macro example. Would I have to have a separate sheet or section where I
would paste the sheet names and pw's side by side and then use the code for
that sheet, or would I simply past the code you provided (if I needed to use
the macro for multiple sheets)?

"Arvi Laanemets" wrote:

Hi

When sheets have different passwords, then of-course for every sheet you
apply the passing one. But Excel's password protection is too weak to stop a
determined and skilled hacker anyway - whe he is able to break one, then he
breaks them all.

When you want to apply different PW for every sheet anyway, then probably
the best solution will be to store sheet names and according passwords into
2D array. Something like (on fly):

Private Sub Workbook_Open()

Dim arrPW(10,2)
arrPW(1,1)="Sheet1"
arrPW(1,2)="password1"
...
arrPW(10,1)="Sheet10"
arrPW(10,2)="password10"

For i=1 To 10
Sheets(arrPW(i,1)).Unprotect Password:=arrPW(i,2)
Sheets(arrPW(i,1)).Protect Password:=arrPW(i,2),
UserInterfaceOnly:=True
Sheets(arrPW(i,1)).EnableAutoFilter = True
Next i
End Sub


Arvi Laanemets


"RS" wrote in message
...
Dear Arvi,

Does your code apply the same password for all protected sheets in a
workbook? In my case, I have differnet passwords for different sheets in

the
workbook.

"Arvi Laanemets" wrote:

Hi

I myself use somewhat simpler code

Private Sub Workbook_Open()
Sheets("SheetName").Unprotect Password:="MyPassword"
Sheets("SheetName").Protect Password:="MyPassword",
UserInterfaceOnly:=True
Sheets("SheetName").EnableAutoFilter = True
' Repeat for all protected sheets
End Sub

Sorry, but it looks like Excel2000 doesn't allow to sort protected

sheets -
there exist no appropriate property for Sheet object you can change

(like
you can change EnableAutoFilter property for Sheet object).


--
Arvi Laanemets
( My real mail address: arvi.laanemets<attarkon.ee )



"RS" wrote in message
...
Hi everyone. This is my third attempt at getting this question

answered,
so
I'm sorry if this question looks familiar to some of you but no one

has
answered the question yet. Here it is:

I know that Excel 2000 disables the autofilter function when
the worksheet is protected and hence copied and modified a macro into
"ThisWorkbook" that would fix this. However, I also just read that the
sorting function is also disabled in Excel 2000. So my question

is...how
would I modify my existing macro (or add a new macro) to also allow me

to
sort? Here is the macro that I have in "ThisWorkbook":

Private Sub Workbook_Open()
'check for filter, turn on if none exists
With Worksheets("Worksheet")
If Not .AutoFilterMode Then
.Range("A1").AutoFilter
End If
.EnableAutoFilter = True
.Protect Password:="temp", _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub