ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Running macro on a protected sheet (https://www.excelbanter.com/excel-programming/414684-running-macro-protected-sheet.html)

James

Running macro on a protected sheet
 
I am trying to set up a macro that automatically changes the background
colour of cells based on a condition. I have found the required macro with
the subseuqent conditional formatting requirements, and I can't get it to run
on a protected worksheet. It works fine when I unprotect the sheet, although
there are a number of formulas that I don't want users modifying.

The code is as follows:

Option Explicit

Dim NextTime As Date
Sub RepeatOneSec()
ActiveWorkbook.Styles("normal").NumberFormat = _
ActiveWorkbook.Styles("normal").NumberFormat
NextTime = Now() + TimeSerial(0, 0, 1)
Application.OnTime NextTime, "RepeatOneSec"
End Sub

Sub EndProcess()
Application.OnTime NextTime, "RepeatOneSec", , False
End Sub

The area I have problems with is the ActiveWorkbook.Styles lines. I get the
message "unable to set the NumberFormat property of the Style class"

Does anyone have any suggestions as to how to fix this?

Thanks
--
J

Skinman

Running macro on a protected sheet
 
Hi James,
Try entering this first line beneath sub,
ActiveSheet.Protect UserInterfaceOnly:=True
Skinman

"James" wrote in message
...
I am trying to set up a macro that automatically changes the background
colour of cells based on a condition. I have found the required macro
with
the subseuqent conditional formatting requirements, and I can't get it to
run
on a protected worksheet. It works fine when I unprotect the sheet,
although
there are a number of formulas that I don't want users modifying.

The code is as follows:

Option Explicit

Dim NextTime As Date
Sub RepeatOneSec()
ActiveWorkbook.Styles("normal").NumberFormat = _
ActiveWorkbook.Styles("normal").NumberFormat
NextTime = Now() + TimeSerial(0, 0, 1)
Application.OnTime NextTime, "RepeatOneSec"
End Sub

Sub EndProcess()
Application.OnTime NextTime, "RepeatOneSec", , False
End Sub

The area I have problems with is the ActiveWorkbook.Styles lines. I get
the
message "unable to set the NumberFormat property of the Style class"

Does anyone have any suggestions as to how to fix this?

Thanks
--
J



James

Running macro on a protected sheet
 
I had used that line of code before, although I think I had put it in the
wrong place!!

I have had to write a few more lines of code in other areas, but everything
works ok. Just quickly, can I add a password to the UserInterface line?

Thanks for your help.
--
J


"Skinman" wrote:

Hi James,
Try entering this first line beneath sub,
ActiveSheet.Protect UserInterfaceOnly:=True
Skinman

"James" wrote in message
...
I am trying to set up a macro that automatically changes the background
colour of cells based on a condition. I have found the required macro
with
the subseuqent conditional formatting requirements, and I can't get it to
run
on a protected worksheet. It works fine when I unprotect the sheet,
although
there are a number of formulas that I don't want users modifying.

The code is as follows:

Option Explicit

Dim NextTime As Date
Sub RepeatOneSec()
ActiveWorkbook.Styles("normal").NumberFormat = _
ActiveWorkbook.Styles("normal").NumberFormat
NextTime = Now() + TimeSerial(0, 0, 1)
Application.OnTime NextTime, "RepeatOneSec"
End Sub

Sub EndProcess()
Application.OnTime NextTime, "RepeatOneSec", , False
End Sub

The area I have problems with is the ActiveWorkbook.Styles lines. I get
the
message "unable to set the NumberFormat property of the Style class"

Does anyone have any suggestions as to how to fix this?

Thanks
--
J




Skinman

Running macro on a protected sheet
 
I don't know, however the sheet stays protected when the macro finishes.
If you put the password in the macro others could see it, so then you would
have to protect the macro with another password.
Sorry I can't be of more help. Start a new post and someone else may be able
to help you.
Cheers, Skinman.

"James" wrote in message
...
I had used that line of code before, although I think I had put it in the
wrong place!!

I have had to write a few more lines of code in other areas, but
everything
works ok. Just quickly, can I add a password to the UserInterface line?

Thanks for your help.
--
J


"Skinman" wrote:

Hi James,
Try entering this first line beneath sub,
ActiveSheet.Protect UserInterfaceOnly:=True
Skinman

"James" wrote in message
...
I am trying to set up a macro that automatically changes the background
colour of cells based on a condition. I have found the required macro
with
the subseuqent conditional formatting requirements, and I can't get it
to
run
on a protected worksheet. It works fine when I unprotect the sheet,
although
there are a number of formulas that I don't want users modifying.

The code is as follows:

Option Explicit

Dim NextTime As Date
Sub RepeatOneSec()
ActiveWorkbook.Styles("normal").NumberFormat = _
ActiveWorkbook.Styles("normal").NumberFormat
NextTime = Now() + TimeSerial(0, 0, 1)
Application.OnTime NextTime, "RepeatOneSec"
End Sub

Sub EndProcess()
Application.OnTime NextTime, "RepeatOneSec", , False
End Sub

The area I have problems with is the ActiveWorkbook.Styles lines. I
get
the
message "unable to set the NumberFormat property of the Style class"

Does anyone have any suggestions as to how to fix this?

Thanks
--
J






All times are GMT +1. The time now is 04:21 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com