Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a code snippet that I am using to change the properties of a cell:
With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Assuming FirstSlaveCell actually has Data Validation applied, try:
Sub TestDisableCell() DisableCell Range("FirstSlaveCell") End Sub Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub Regards, Greg "ExcelMonkey" wrote: I have a code snippet that I am using to change the properties of a cell: With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Must have been the double brackets that casued the problems. Thanks.
"Greg Wilson" wrote: Assuming FirstSlaveCell actually has Data Validation applied, try: Sub TestDisableCell() DisableCell Range("FirstSlaveCell") End Sub Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub Regards, Greg "ExcelMonkey" wrote: I have a code snippet that I am using to change the properties of a cell: With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Ok. Now suppose I wanted to do this to more than one range. Normally I
would have: With Range("FirstSlaveCell", "SecondCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With How would I pass more than one range to the same sub? And what if I did not know in advance how may ranges I wanted to pass to the sub? DisableCell Range("FirstSlaveCell") Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub "Greg Wilson" wrote: Assuming FirstSlaveCell actually has Data Validation applied, try: Sub TestDisableCell() DisableCell Range("FirstSlaveCell") End Sub Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub Regards, Greg "ExcelMonkey" wrote: I have a code snippet that I am using to change the properties of a cell: With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
DisableCell Range("FirstSlaveCell"), Range("SecondCell")
Sub DisableCell(ParamArray rng()) Dim i As Long For i = LBound(rng) To UBound(rng) With rng(i) .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With Next i End Sub -- HTH Bob Phillips (remove nothere from the email address if mailing direct) "ExcelMonkey" wrote in message ... Ok. Now suppose I wanted to do this to more than one range. Normally I would have: With Range("FirstSlaveCell", "SecondCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With How would I pass more than one range to the same sub? And what if I did not know in advance how may ranges I wanted to pass to the sub? DisableCell Range("FirstSlaveCell") Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub "Greg Wilson" wrote: Assuming FirstSlaveCell actually has Data Validation applied, try: Sub TestDisableCell() DisableCell Range("FirstSlaveCell") End Sub Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub Regards, Greg "ExcelMonkey" wrote: I have a code snippet that I am using to change the properties of a cell: With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
One quick questions Bob. Firstly, I am doing this in a Worksheet_Change
event (see full code below). When I try to run it, I get a Compile Error "Wrong number of arguments or invalid property assignment." It highlights the first line of code. Why is this happening? Private Sub Worksheet_Change(ByVal Target As Excel.Range)'FAILS HERE DisableCell Range("FirstCell"), Range("SecondCell") End Sub Sub DisableCell(ParamArray rng()) Dim i As Long For i = LBound(rng) To UBound(rng) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With Next i End Sub "Bob Phillips" wrote: DisableCell Range("FirstSlaveCell"), Range("SecondCell") Sub DisableCell(ParamArray rng()) Dim i As Long For i = LBound(rng) To UBound(rng) With rng(i) .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With Next i End Sub -- HTH Bob Phillips (remove nothere from the email address if mailing direct) "ExcelMonkey" wrote in message ... Ok. Now suppose I wanted to do this to more than one range. Normally I would have: With Range("FirstSlaveCell", "SecondCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With How would I pass more than one range to the same sub? And what if I did not know in advance how may ranges I wanted to pass to the sub? DisableCell Range("FirstSlaveCell") Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub "Greg Wilson" wrote: Assuming FirstSlaveCell actually has Data Validation applied, try: Sub TestDisableCell() DisableCell Range("FirstSlaveCell") End Sub Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub Regards, Greg "ExcelMonkey" wrote: I have a code snippet that I am using to change the properties of a cell: With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Sorry Bob, ignore last reply. My error.
"Bob Phillips" wrote: DisableCell Range("FirstSlaveCell"), Range("SecondCell") Sub DisableCell(ParamArray rng()) Dim i As Long For i = LBound(rng) To UBound(rng) With rng(i) .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With Next i End Sub -- HTH Bob Phillips (remove nothere from the email address if mailing direct) "ExcelMonkey" wrote in message ... Ok. Now suppose I wanted to do this to more than one range. Normally I would have: With Range("FirstSlaveCell", "SecondCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With How would I pass more than one range to the same sub? And what if I did not know in advance how may ranges I wanted to pass to the sub? DisableCell Range("FirstSlaveCell") Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub "Greg Wilson" wrote: Assuming FirstSlaveCell actually has Data Validation applied, try: Sub TestDisableCell() DisableCell Range("FirstSlaveCell") End Sub Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub Regards, Greg "ExcelMonkey" wrote: I have a code snippet that I am using to change the properties of a cell: With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The problem is the parentheses around the argument to
DisableCell: DisableCell (Range("FirstSlaveCell")) should be DisableCell Range("FirstSlaveCell") With the parens, VBA evaluates the expression and passes the result to DisableCell. The code DisableCell (Range("FirstSlaveCell")) is really equivalent to DisableCell (Range("FirstSlaveCell").Value) You shouldn't use parens to pass argument to a Sub procedure. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "ExcelMonkey" wrote in message ... I have a code snippet that I am using to change the properties of a cell: With Range("FirstSlaveCell") .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With I want to replace it with a function/sub that looks like the one below but I am getting a Run Time Error 424 Object Required. What am I doing wrong? DisableCell (Range("FirstSlaveCell")) Sub DisableCell(rng As Range) With rng .Interior.Pattern = xlGray50 .Locked = True .FormulaHidden = False .Validation.InCellDropdown = False End With End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
how to change multiple cell comment properties? | Excel Discussion (Misc queries) | |||
change control properties according to a cell value | Excel Worksheet Functions | |||
Change Cell properties by Function | Excel Worksheet Functions | |||
VBA: how to... cell properties has to change based on a condition | Excel Programming | |||
Change the properties of a non selected cell? | Excel Programming |