The code snippet below changes the data validation state of a cell and runs when the Excel-2003 worksheet is unprotected. However, when I protect the work sheet the macro doesn't run and raises a run-time error
Run-time error '-2147417848 (80010108)':
Method 'Add' of object 'Validation' failed
I have tried wrapping the code with
Me.unprotect
...
Me.protect
But this does not work properly. So, how can I modify the code below to work (ie have the code modify the unlocked cell's validation) when the sheet is protected without the above run-time error?
Update
My original work book is an Excel 2003. I tested @eJames solution in Excel 2007 with the following definition for Workbook_Open
Sub WorkBook_Open()
Me.Worksheets("MainTable").Protect contents:=True, userinterfaceonly:=True
End Sub
The code still fails with the following run-time error when the worksheet is protected
Run-time error '1004': Application-defined or object-defined error
Thanks, Azim
Code Snippet
'cell to add drop down validation list'
dim myNamedRange as String
dim modifyCell as Range
modifyCell = ActiveCell.Offset(0,1)
' set list values based on some conditions not defined for brevitity'
If myCondition then
myNamedRange = "range1"
Else
myNamedRange = "range2"
End If
With modifyCell.Validation
.Delete
'Run time error occurs on the next line'
.Add Type:=xlValidateList, AlertStyle:=xlValidAltertStop, _
Operator:=xlBetween, Formula1:="=" & myNamedRange
...
' skipping more property setting code '
...
End With