ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Locking cells, Excel 2003 SP3 (https://www.excelbanter.com/excel-programming/428943-locking-cells-excel-2003-sp3.html)

thebison

Locking cells, Excel 2003 SP3
 
Hi
I have Excel 2003 SP3 and I have what I thought was correct code when
investigating other peoples issues. However at the end of the loop, the whole
sheet is protected, not just the cells. How do I start from an unprotected
sheet, lock some cells only, and keep the remainder of the sheet protected?
(I have tried with unprotect and protect out of the loop
Thanks

'rstData is a dataset of info which has a column that has an Excel Cell
name such as C10, B23, F16
Set rstData = oDatabase.RecordsetData
With rstData
.MoveFirst
Do While Not .EOF
ActiveWorkbook.ActiveSheet.Unprotect Password:="MyPwd"
ActiveWorkbook.ActiveSheet.Range(rstData("ExcelCel lPos")).Locked
= True
ActiveWorkbook.ActiveSheet.Protect Password:="MyPwd"
.MoveNext
Loop
End With

JLGWhiz[_2_]

Locking cells, Excel 2003 SP3
 
My understanding of it is that the sheet is first protected with all cells
locked. The specified cells must then be unlocked for modification of
content. The remainder of the sheet is still protected.


"thebison" wrote in message
...
Hi
I have Excel 2003 SP3 and I have what I thought was correct code when
investigating other peoples issues. However at the end of the loop, the
whole
sheet is protected, not just the cells. How do I start from an unprotected
sheet, lock some cells only, and keep the remainder of the sheet
protected?
(I have tried with unprotect and protect out of the loop
Thanks

'rstData is a dataset of info which has a column that has an Excel Cell
name such as C10, B23, F16
Set rstData = oDatabase.RecordsetData
With rstData
.MoveFirst
Do While Not .EOF
ActiveWorkbook.ActiveSheet.Unprotect Password:="MyPwd"

ActiveWorkbook.ActiveSheet.Range(rstData("ExcelCel lPos")).Locked
= True
ActiveWorkbook.ActiveSheet.Protect Password:="MyPwd"
.MoveNext
Loop
End With




Patrick Molloy

Locking cells, Excel 2003 SP3
 
your logic needs to be reversed.

First you Unprotect the cells that you're ok with others changing.
Next you protect the sheet. only those unprotected cells can now be edited.

"thebison" wrote in message
...
Hi
I have Excel 2003 SP3 and I have what I thought was correct code when
investigating other peoples issues. However at the end of the loop, the
whole
sheet is protected, not just the cells. How do I start from an unprotected
sheet, lock some cells only, and keep the remainder of the sheet
protected?
(I have tried with unprotect and protect out of the loop
Thanks

'rstData is a dataset of info which has a column that has an Excel Cell
name such as C10, B23, F16
Set rstData = oDatabase.RecordsetData
With rstData
.MoveFirst
Do While Not .EOF
ActiveWorkbook.ActiveSheet.Unprotect Password:="MyPwd"

ActiveWorkbook.ActiveSheet.Range(rstData("ExcelCel lPos")).Locked
= True
ActiveWorkbook.ActiveSheet.Protect Password:="MyPwd"
.MoveNext
Loop
End With



thebison

Locking cells, Excel 2003 SP3
 
Many thanks to you both, I only have a few cells to lock and a lot of cells
that are unlocked but okay, understand. Many thanks

"JLGWhiz" wrote:

My understanding of it is that the sheet is first protected with all cells
locked. The specified cells must then be unlocked for modification of
content. The remainder of the sheet is still protected.


"thebison" wrote in message
...
Hi
I have Excel 2003 SP3 and I have what I thought was correct code when
investigating other peoples issues. However at the end of the loop, the
whole
sheet is protected, not just the cells. How do I start from an unprotected
sheet, lock some cells only, and keep the remainder of the sheet
protected?
(I have tried with unprotect and protect out of the loop
Thanks

'rstData is a dataset of info which has a column that has an Excel Cell
name such as C10, B23, F16
Set rstData = oDatabase.RecordsetData
With rstData
.MoveFirst
Do While Not .EOF
ActiveWorkbook.ActiveSheet.Unprotect Password:="MyPwd"

ActiveWorkbook.ActiveSheet.Range(rstData("ExcelCel lPos")).Locked
= True
ActiveWorkbook.ActiveSheet.Protect Password:="MyPwd"
.MoveNext
Loop
End With





joel

Locking cells, Excel 2003 SP3
 
Try something like this

ActiveWorkbook.ActiveSheet.Unprotect Password:="MyPwd"
Set rstData = oDatabase.RecordsetData
for each MyRow in RstData.rows
MyRow.entireRow.Locked
next Myrow
ActiveWorkbook.ActiveSheet.Protect Password:="MyPwd"


"thebison" wrote:

Many thanks to you both, I only have a few cells to lock and a lot of cells
that are unlocked but okay, understand. Many thanks

"JLGWhiz" wrote:

My understanding of it is that the sheet is first protected with all cells
locked. The specified cells must then be unlocked for modification of
content. The remainder of the sheet is still protected.


"thebison" wrote in message
...
Hi
I have Excel 2003 SP3 and I have what I thought was correct code when
investigating other peoples issues. However at the end of the loop, the
whole
sheet is protected, not just the cells. How do I start from an unprotected
sheet, lock some cells only, and keep the remainder of the sheet
protected?
(I have tried with unprotect and protect out of the loop
Thanks

'rstData is a dataset of info which has a column that has an Excel Cell
name such as C10, B23, F16
Set rstData = oDatabase.RecordsetData
With rstData
.MoveFirst
Do While Not .EOF
ActiveWorkbook.ActiveSheet.Unprotect Password:="MyPwd"

ActiveWorkbook.ActiveSheet.Range(rstData("ExcelCel lPos")).Locked
= True
ActiveWorkbook.ActiveSheet.Protect Password:="MyPwd"
.MoveNext
Loop
End With






All times are GMT +1. The time now is 10:02 AM.

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