Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Protection Error

I have written some code in Excel that runs a database query, updates some
sheets and charts based on that query.

I call the code from a control button that first unprotects the worksheets
and charts, calls the above macro and then reprotects the worksheets and
charts.

However, as the code copmpletes, I get an error: "The cell or chart you are
trying to change is protected and therefore read-only"

I know that it is happening as the last step as I have put message boxes
throughout the code to find the point of error: it doesn't happen if you run
it from the vba window.

I have tried using the userinterfaceonly option on the protect method, but I
am running Excel 2003 SP3 and it doesn't seem to recognise it.

I have even tried making the final step of the macro select a cell that I
have deliberately unprotected, but it doesn't work.

Could the problem be that I am calling the code from a control button? I've
used this before and never experienced the problem.

It's driving me mad, can anyone advise?

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Protection Error

The code from the button is:

Private Sub btnUpdateCharts_Click()
' turn off screen updating to improve speed
Application.ScreenUpdating = False

' unprotect all the worksheets
For Each vWorksheet In ActiveWorkbook.Worksheets
sWorksheet = vWorksheet.Name
ActiveWorkbook.Sheets(sWorksheet).Unprotect Password:=sPassword
Next

'unprotect all the charts
For Each vChart In ActiveWorkbook.Charts
sChart = vChart.Name
ActiveWorkbook.Charts(sChart).Unprotect Password:=sPassword
Next

UpdateMetrics ' calls the code to run the query

'protect the charts
For Each vChart In ActiveWorkbook.Charts
sChart = vChart.Name
ActiveWorkbook.Charts(sChart).Protect _
Password:=sPassword, DrawingObjects:=True, Contents:=True,
Scenarios:=True
Next

' protect the worksheets
For Each vWorksheet In ActiveWorkbook.Sheets
sWorksheet = vWorksheet.Name
Select Case sWorksheet
Case "Home"
ActiveWorkbook.Worksheets(sWorksheet).Protect _
Password:=sPassword, DrawingObjects:=True, Contents:=True,
Scenarios:=True
Case "All Audit Actions"
ActiveWorkbook.Worksheets(sWorksheet).Protect _
Password:=sPassword, DrawingObjects:=True, Contents:=True,
Scenarios:=True
Case Else
' do nothing as these sheets are hidden
End Select
Next
Worksheets("Home").Range("A1").Select
End Sub

Cell A1 on the home worksheet is unprotected.



Thanks
K

"Nigel" wrote:

I suspect that you are trying to select or activate cells on the wrong type
of object?

Without seeing your code it is impossible to diagnose. Please post it.

--

Regards,
Nigel




"KirstyW" wrote in message
...
I have written some code in Excel that runs a database query, updates some
sheets and charts based on that query.

I call the code from a control button that first unprotects the worksheets
and charts, calls the above macro and then reprotects the worksheets and
charts.

However, as the code copmpletes, I get an error: "The cell or chart you
are
trying to change is protected and therefore read-only"

I know that it is happening as the last step as I have put message boxes
throughout the code to find the point of error: it doesn't happen if you
run
it from the vba window.

I have tried using the userinterfaceonly option on the protect method, but
I
am running Excel 2003 SP3 and it doesn't seem to recognise it.

I have even tried making the final step of the macro select a cell that I
have deliberately unprotected, but it doesn't work.

Could the problem be that I am calling the code from a control button?
I've
used this before and never experienced the problem.

It's driving me mad, can anyone advise?



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 735
Default Protection Error

The final line will fail unless your active sheet is 'Home'

Try using....

With Worksheets("Home")
..Activate
..Range("A1").Select
End With

If this fails due to protection, try placing the above code BEFORE you apply
protection.


--

Regards,
Nigel




"KirstyW" wrote in message
...
The code from the button is:

Private Sub btnUpdateCharts_Click()
' turn off screen updating to improve speed
Application.ScreenUpdating = False

' unprotect all the worksheets
For Each vWorksheet In ActiveWorkbook.Worksheets
sWorksheet = vWorksheet.Name
ActiveWorkbook.Sheets(sWorksheet).Unprotect Password:=sPassword
Next

'unprotect all the charts
For Each vChart In ActiveWorkbook.Charts
sChart = vChart.Name
ActiveWorkbook.Charts(sChart).Unprotect Password:=sPassword
Next

UpdateMetrics ' calls the code to run the query

'protect the charts
For Each vChart In ActiveWorkbook.Charts
sChart = vChart.Name
ActiveWorkbook.Charts(sChart).Protect _
Password:=sPassword, DrawingObjects:=True, Contents:=True,
Scenarios:=True
Next

' protect the worksheets
For Each vWorksheet In ActiveWorkbook.Sheets
sWorksheet = vWorksheet.Name
Select Case sWorksheet
Case "Home"
ActiveWorkbook.Worksheets(sWorksheet).Protect _
Password:=sPassword, DrawingObjects:=True, Contents:=True,
Scenarios:=True
Case "All Audit Actions"
ActiveWorkbook.Worksheets(sWorksheet).Protect _
Password:=sPassword, DrawingObjects:=True, Contents:=True,
Scenarios:=True
Case Else
' do nothing as these sheets are hidden
End Select
Next
Worksheets("Home").Range("A1").Select
End Sub

Cell A1 on the home worksheet is unprotected.



Thanks
K

"Nigel" wrote:

I suspect that you are trying to select or activate cells on the wrong
type
of object?

Without seeing your code it is impossible to diagnose. Please post it.

--

Regards,
Nigel




"KirstyW" wrote in message
...
I have written some code in Excel that runs a database query, updates
some
sheets and charts based on that query.

I call the code from a control button that first unprotects the
worksheets
and charts, calls the above macro and then reprotects the worksheets
and
charts.

However, as the code copmpletes, I get an error: "The cell or chart you
are
trying to change is protected and therefore read-only"

I know that it is happening as the last step as I have put message
boxes
throughout the code to find the point of error: it doesn't happen if
you
run
it from the vba window.

I have tried using the userinterfaceonly option on the protect method,
but
I
am running Excel 2003 SP3 and it doesn't seem to recognise it.

I have even tried making the final step of the macro select a cell that
I
have deliberately unprotected, but it doesn't work.

Could the problem be that I am calling the code from a control button?
I've
used this before and never experienced the problem.

It's driving me mad, can anyone advise?




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
protection error Selen Excel Worksheet Functions 2 April 30th 10 06:38 AM
Protection error Jess Excel Discussion (Misc queries) 1 November 30th 05 04:13 PM
Protection Error Tom Ogilvy Excel Programming 0 July 27th 04 05:46 PM
Protection Error Frank Kabel Excel Programming 0 July 27th 04 05:33 PM
Error with protection gavin Excel Programming 4 May 10th 04 03:18 AM


All times are GMT +1. The time now is 07:00 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"