Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 117
Default 2003 & 2007 Differences in Locking Cells Syntax

The code below runs fine in Excel 2007, but 2003 does not like it.
I`m not sure why. It gives me a runtime error and says it is unable
to set the Locked property of the range class.

I tried commenting out the first line (WS.Cells.Locked = False) and
changing the second statement to"

WS.Range(Cells(row,col),Cells(row,col)).Locked = True

However, this did not help.

Does anyone see what I am doing wrong? Thanks, Alan

Sub DisableCellInput(WS As Worksheet, row As Long, col As Long)
'
' This subroutine locks and greys out the cell
'
WS.Cells.Locked = False
' Lock cell for input
WS.Cells(row, col).Locked = True
' Fill cell with light grey
WS.Cells(row, col).Interior.ColorIndex = 15
' Turn text into a slightly darker grey
WS.Cells(row, col).Font.ColorIndex = 48
' Protect the worksheet
WS.Protect UserInterfaceOnly:=True
End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default 2003 & 2007 Differences in Locking Cells Syntax

Not sure about your particular issue but some observations.

- As written, previously unlocked cells get unlocked, then just one new cell
gets locked (iow previously locked cells get unlocked)
- The routine would only work one time, when the sheet was originally
unprotected (need to unprotect each time).
- There's no password

Try the following, but check it carefully as it might not be quite as you
want

Sub DisableCellInput(ws As Worksheet, row As Long, col As Long)
' This subroutine locks and greys out the cell
'
Const cPW As String = "Password" ' <<< CHANGE
' ' ws.Cells.Locked = False
ws.Unprotect cPW
' Lock cell for input
ws.Cells(row, col).Locked = True
' Fill cell with light grey
ws.Cells(row, col).Interior.ColorIndex = 15
' Turn text into a slightly darker grey
ws.Cells(row, col).Font.ColorIndex = 48
' Protect the worksheet
ws.Protect Password:=cPW, UserInterfaceOnly:=True
End Sub

Regards,
Peter T

"Alan" wrote in message
...
The code below runs fine in Excel 2007, but 2003 does not like it.
I`m not sure why. It gives me a runtime error and says it is unable
to set the Locked property of the range class.

I tried commenting out the first line (WS.Cells.Locked = False) and
changing the second statement to"

WS.Range(Cells(row,col),Cells(row,col)).Locked = True

However, this did not help.

Does anyone see what I am doing wrong? Thanks, Alan

Sub DisableCellInput(WS As Worksheet, row As Long, col As Long)
'
' This subroutine locks and greys out the cell
'
WS.Cells.Locked = False
' Lock cell for input
WS.Cells(row, col).Locked = True
' Fill cell with light grey
WS.Cells(row, col).Interior.ColorIndex = 15
' Turn text into a slightly darker grey
WS.Cells(row, col).Font.ColorIndex = 48
' Protect the worksheet
WS.Protect UserInterfaceOnly:=True
End Sub



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 117
Default 2003 & 2007 Differences in Locking Cells Syntax

Is anyone aware of differences in Excel 2003 and 2007 in this area? I
have not been able to find any documented.

Thanks, Alan
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default 2003 & 2007 Differences in Locking Cells Syntax

Did you try the amended routine I suggested in both Excel 2003 and 2007?

Regards,
Peter T

"Alan" wrote in message
...
Is anyone aware of differences in Excel 2003 and 2007 in this area? I
have not been able to find any documented.

Thanks, Alan



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 117
Default 2003 & 2007 Differences in Locking Cells Syntax

Peter,

You can protect a sheet without a password. However, the following
code worked for me. The reason for the four subs/functions is that I
reused 2 subs from some earlier code.

Alan

Sub DisableCellInput(WS As Worksheet, row As Long, col As Long)
'
' This subroutine locks and greys out the cell
'
Debug.Print "Disabling . . . in WS " & WS.Name
WS.Cells(row, col).Select
Call ProtectSelectedCells
End Sub

Sub EnableCellInput(WS As Worksheet, row As Long, col As Long)
'
' This subroutine unlocks a cell for input and changes its colors
' to black text on white background, to indicate that
'
' For debug only
Debug.Print "Enabling Cell Input . . . "
WS.Cells(row, col).Select
Call UnprotectSelectedCells
End Sub

Sub ProtectSelectedCells()
'
Dim CellsToLock As Range
Set CellsToLock = Selection
ActiveSheet.Unprotect
CellsToLock.Locked = True
' Fill cell with light grey
CellsToLock.Interior.ColorIndex = 15
' Turn text into a slightly darker grey
CellsToLock.Font.ColorIndex = 48
ActiveSheet.Protect
End Sub

Sub UnprotectSelectedCells()
'
Dim CellsToUnlock As Range
Set CellsToUnlock = Selection
ActiveSheet.Unprotect
CellsToUnlock.Locked = False
' Fill cell with white
CellsToUnlock.Interior.Color = vbWhite
' Turn text to black
CellsToUnlock.Font.Color = vbBlack
ActiveSheet.Protect
End Sub


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default 2003 & 2007 Differences in Locking Cells Syntax

Yes I'm well aware you can protect a sheet without a password. Your original
code worked fine, at least in the sense it did as much as it was allowed to
do, and no difference with Excel 2007. Hence the alternative I suggested.
I'm a bit confused, are you saying everything is now working OK or is there
still a problem

Regards,
Peter T

"Alan" wrote in message
...
Peter,

You can protect a sheet without a password. However, the following
code worked for me. The reason for the four subs/functions is that I
reused 2 subs from some earlier code.

Alan

Sub DisableCellInput(WS As Worksheet, row As Long, col As Long)
'
' This subroutine locks and greys out the cell
'
Debug.Print "Disabling . . . in WS " & WS.Name
WS.Cells(row, col).Select
Call ProtectSelectedCells
End Sub

Sub EnableCellInput(WS As Worksheet, row As Long, col As Long)
'
' This subroutine unlocks a cell for input and changes its colors
' to black text on white background, to indicate that
'
' For debug only
Debug.Print "Enabling Cell Input . . . "
WS.Cells(row, col).Select
Call UnprotectSelectedCells
End Sub

Sub ProtectSelectedCells()
'
Dim CellsToLock As Range
Set CellsToLock = Selection
ActiveSheet.Unprotect
CellsToLock.Locked = True
' Fill cell with light grey
CellsToLock.Interior.ColorIndex = 15
' Turn text into a slightly darker grey
CellsToLock.Font.ColorIndex = 48
ActiveSheet.Protect
End Sub

Sub UnprotectSelectedCells()
'
Dim CellsToUnlock As Range
Set CellsToUnlock = Selection
ActiveSheet.Unprotect
CellsToUnlock.Locked = False
' Fill cell with white
CellsToUnlock.Interior.Color = vbWhite
' Turn text to black
CellsToUnlock.Font.Color = vbBlack
ActiveSheet.Protect
End Sub



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
Application Name differences between Excel 2003 and 2007 SteveM Excel Programming 4 August 19th 09 12:55 PM
excel 2007 differences to 2003 questions George Applegate[_2_] Excel Discussion (Misc queries) 0 May 4th 09 08:41 PM
Differences in Excel macro recording from 2003 to 2007! Help! KjS Excel Programming 0 January 21st 09 08:02 PM
can you summarize differences between Excel 2000, 2003 & 2007? LSL Excel Discussion (Misc queries) 2 August 7th 08 03:39 PM
Excel Macros - Any Major Differences Between 2003 and 2007 bk Excel Worksheet Functions 1 November 20th 07 03:56 PM


All times are GMT +1. The time now is 11:12 AM.

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

About Us

"It's about Microsoft Excel"