Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Try this Hari
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Ron,
Thanx a lot for ur code. I can work with it. Only one change I desired if possible. Usually this sheet might be populated by pasting data from another sheet So many columns and rows of data could be pasted in this enmasse. When u say "If Target.Cells.Count 1 Then Exit Sub" I believe that would mean that if in column N, If Yes or NO is pasted in 4 rows then it wouldnt work. ( For testing this I deleted that statement and tried the code and it didnt change the selection fill color automatically) Also the worksheet from which data is copied and pasted here would be such that we will be pasting data from column K through N or from column L through N. For example if I copy K3:N7 and I paste it in K8 then the code doesnt work So in above cases though the column N gets changed the code doesnt work. In short, Is it possible for the "Target.Cells.Count " to work when the count is greater than 1. Please guide me. ( I have slightly modified to code to suit my requirements..Please find it pasted below my signature) Regards, Hari India Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Cells.Count 1 Then Exit Sub ' I have made this line as a comment by entering an apostrophe thinking that If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red ElseIf LCase(Target.Value) = "no" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone ElseIf Target.Value < "" Then MsgBox "Please enter only yes or no in Column N" Selection.ClearContents Exit Sub End If End If End Sub "Ron de Bruin" wrote in message ... Try this Hari Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Hari
You can use Conditonal formatting on the Format menu Select O3:AG? FormatConditonal formatting Formula = =($N3="yes") click on the format button to pick a color You can make one for "no" also -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Thanx a lot for ur code. I can work with it. Only one change I desired if possible. Usually this sheet might be populated by pasting data from another sheet So many columns and rows of data could be pasted in this enmasse. When u say "If Target.Cells.Count 1 Then Exit Sub" I believe that would mean that if in column N, If Yes or NO is pasted in 4 rows then it wouldnt work. ( For testing this I deleted that statement and tried the code and it didnt change the selection fill color automatically) Also the worksheet from which data is copied and pasted here would be such that we will be pasting data from column K through N or from column L through N. For example if I copy K3:N7 and I paste it in K8 then the code doesnt work So in above cases though the column N gets changed the code doesnt work. In short, Is it possible for the "Target.Cells.Count " to work when the count is greater than 1. Please guide me. ( I have slightly modified to code to suit my requirements..Please find it pasted below my signature) Regards, Hari India Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Cells.Count 1 Then Exit Sub ' I have made this line as a comment by entering an apostrophe thinking that If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red ElseIf LCase(Target.Value) = "no" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone ElseIf Target.Value < "" Then MsgBox "Please enter only yes or no in Column N" Selection.ClearContents Exit Sub End If End If End Sub "Ron de Bruin" wrote in message ... Try this Hari Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Ron,
Wanted to avoid conditional formatting as on pasting data etc it gets overwritten ( also otherwise it gets inadvertently changed by the end user..) Hence wanted to set it up sort of permanently. Sorry to bother u but just wanted to know if "Target" in the argument of Worksheet_Change can take only one cell as range. I mean if lots of cells are pasted together it doesnt work... Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari You can use Conditonal formatting on the Format menu Select O3:AG? FormatConditonal formatting Formula = =($N3="yes") click on the format button to pick a color You can make one for "no" also -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Thanx a lot for ur code. I can work with it. Only one change I desired if possible. Usually this sheet might be populated by pasting data from another sheet So many columns and rows of data could be pasted in this enmasse. When u say "If Target.Cells.Count 1 Then Exit Sub" I believe that would mean that if in column N, If Yes or NO is pasted in 4 rows then it wouldnt work. ( For testing this I deleted that statement and tried the code and it didnt change the selection fill color automatically) Also the worksheet from which data is copied and pasted here would be such that we will be pasting data from column K through N or from column L through N. For example if I copy K3:N7 and I paste it in K8 then the code doesnt work So in above cases though the column N gets changed the code doesnt work. In short, Is it possible for the "Target.Cells.Count " to work when the count is greater than 1. Please guide me. ( I have slightly modified to code to suit my requirements..Please find it pasted below my signature) Regards, Hari India Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Cells.Count 1 Then Exit Sub ' I have made this line as a comment by entering an apostrophe thinking that If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red ElseIf LCase(Target.Value) = "no" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone ElseIf Target.Value < "" Then MsgBox "Please enter only yes or no in Column N" Selection.ClearContents Exit Sub End If End If End Sub "Ron de Bruin" wrote in message ... Try this Hari Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Hari
Try this one Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 14 And cell.Row 2 Then If LCase(cell.Value) = "yes" Then Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If Next cell End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Wanted to avoid conditional formatting as on pasting data etc it gets overwritten ( also otherwise it gets inadvertently changed by the end user..) Hence wanted to set it up sort of permanently. Sorry to bother u but just wanted to know if "Target" in the argument of Worksheet_Change can take only one cell as range. I mean if lots of cells are pasted together it doesnt work... Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari You can use Conditonal formatting on the Format menu Select O3:AG? FormatConditonal formatting Formula = =($N3="yes") click on the format button to pick a color You can make one for "no" also -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Thanx a lot for ur code. I can work with it. Only one change I desired if possible. Usually this sheet might be populated by pasting data from another sheet So many columns and rows of data could be pasted in this enmasse. When u say "If Target.Cells.Count 1 Then Exit Sub" I believe that would mean that if in column N, If Yes or NO is pasted in 4 rows then it wouldnt work. ( For testing this I deleted that statement and tried the code and it didnt change the selection fill color automatically) Also the worksheet from which data is copied and pasted here would be such that we will be pasting data from column K through N or from column L through N. For example if I copy K3:N7 and I paste it in K8 then the code doesnt work So in above cases though the column N gets changed the code doesnt work. In short, Is it possible for the "Target.Cells.Count " to work when the count is greater than 1. Please guide me. ( I have slightly modified to code to suit my requirements..Please find it pasted below my signature) Regards, Hari India Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Cells.Count 1 Then Exit Sub ' I have made this line as a comment by entering an apostrophe thinking that If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red ElseIf LCase(Target.Value) = "no" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone ElseIf Target.Value < "" Then MsgBox "Please enter only yes or no in Column N" Selection.ClearContents Exit Sub End If End If End Sub "Ron de Bruin" wrote in message ... Try this Hari Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Ron,
It worked like a charm. Thanx for giving me some solid lessons in syntax. (At the danger of being mean I have one humble request. I have one more problem with syntax... I posted it yesterday with a subject "To exceute a Macro when worksheet is deactivted and data is changed". Please look over if possible. If not still a thousand thanks to you for solving my worksheet_change problem) Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari Try this one Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 14 And cell.Row 2 Then If LCase(cell.Value) = "yes" Then Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If Next cell End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Wanted to avoid conditional formatting as on pasting data etc it gets overwritten ( also otherwise it gets inadvertently changed by the end user..) Hence wanted to set it up sort of permanently. Sorry to bother u but just wanted to know if "Target" in the argument of Worksheet_Change can take only one cell as range. I mean if lots of cells are pasted together it doesnt work... Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari You can use Conditonal formatting on the Format menu Select O3:AG? FormatConditonal formatting Formula = =($N3="yes") click on the format button to pick a color You can make one for "no" also -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Thanx a lot for ur code. I can work with it. Only one change I desired if possible. Usually this sheet might be populated by pasting data from another sheet So many columns and rows of data could be pasted in this enmasse. When u say "If Target.Cells.Count 1 Then Exit Sub" I believe that would mean that if in column N, If Yes or NO is pasted in 4 rows then it wouldnt work. ( For testing this I deleted that statement and tried the code and it didnt change the selection fill color automatically) Also the worksheet from which data is copied and pasted here would be such that we will be pasting data from column K through N or from column L through N. For example if I copy K3:N7 and I paste it in K8 then the code doesnt work So in above cases though the column N gets changed the code doesnt work. In short, Is it possible for the "Target.Cells.Count " to work when the count is greater than 1. Please guide me. ( I have slightly modified to code to suit my requirements..Please find it pasted below my signature) Regards, Hari India Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Cells.Count 1 Then Exit Sub ' I have made this line as a comment by entering an apostrophe thinking that If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red ElseIf LCase(Target.Value) = "no" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone ElseIf Target.Value < "" Then MsgBox "Please enter only yes or no in Column N" Selection.ClearContents Exit Sub End If End If End Sub "Ron de Bruin" wrote in message ... Try this Hari Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
See your other thread
-- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, It worked like a charm. Thanx for giving me some solid lessons in syntax. (At the danger of being mean I have one humble request. I have one more problem with syntax... I posted it yesterday with a subject "To exceute a Macro when worksheet is deactivted and data is changed". Please look over if possible. If not still a thousand thanks to you for solving my worksheet_change problem) Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari Try this one Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 14 And cell.Row 2 Then If LCase(cell.Value) = "yes" Then Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If Next cell End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Wanted to avoid conditional formatting as on pasting data etc it gets overwritten ( also otherwise it gets inadvertently changed by the end user..) Hence wanted to set it up sort of permanently. Sorry to bother u but just wanted to know if "Target" in the argument of Worksheet_Change can take only one cell as range. I mean if lots of cells are pasted together it doesnt work... Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari You can use Conditonal formatting on the Format menu Select O3:AG? FormatConditonal formatting Formula = =($N3="yes") click on the format button to pick a color You can make one for "no" also -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Thanx a lot for ur code. I can work with it. Only one change I desired if possible. Usually this sheet might be populated by pasting data from another sheet So many columns and rows of data could be pasted in this enmasse. When u say "If Target.Cells.Count 1 Then Exit Sub" I believe that would mean that if in column N, If Yes or NO is pasted in 4 rows then it wouldnt work. ( For testing this I deleted that statement and tried the code and it didnt change the selection fill color automatically) Also the worksheet from which data is copied and pasted here would be such that we will be pasting data from column K through N or from column L through N. For example if I copy K3:N7 and I paste it in K8 then the code doesnt work So in above cases though the column N gets changed the code doesnt work. In short, Is it possible for the "Target.Cells.Count " to work when the count is greater than 1. Please guide me. ( I have slightly modified to code to suit my requirements..Please find it pasted below my signature) Regards, Hari India Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Cells.Count 1 Then Exit Sub ' I have made this line as a comment by entering an apostrophe thinking that If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red ElseIf LCase(Target.Value) = "no" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone ElseIf Target.Value < "" Then MsgBox "Please enter only yes or no in Column N" Selection.ClearContents Exit Sub End If End If End Sub "Ron de Bruin" wrote in message ... Try this Hari Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Ron,
Thanx a lot for your sportive spirit. May u have a great time. Regards, Hari India "Ron de Bruin" wrote in message ... See your other thread -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, It worked like a charm. Thanx for giving me some solid lessons in syntax. (At the danger of being mean I have one humble request. I have one more problem with syntax... I posted it yesterday with a subject "To exceute a Macro when worksheet is deactivted and data is changed". Please look over if possible. If not still a thousand thanks to you for solving my worksheet_change problem) Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari Try this one Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 14 And cell.Row 2 Then If LCase(cell.Value) = "yes" Then Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(cell.Row, "O"), Cells(cell.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If Next cell End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Wanted to avoid conditional formatting as on pasting data etc it gets overwritten ( also otherwise it gets inadvertently changed by the end user..) Hence wanted to set it up sort of permanently. Sorry to bother u but just wanted to know if "Target" in the argument of Worksheet_Change can take only one cell as range. I mean if lots of cells are pasted together it doesnt work... Regards, Hari India "Ron de Bruin" wrote in message ... Hi Hari You can use Conditonal formatting on the Format menu Select O3:AG? FormatConditonal formatting Formula = =($N3="yes") click on the format button to pick a color You can make one for "no" also -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi Ron, Thanx a lot for ur code. I can work with it. Only one change I desired if possible. Usually this sheet might be populated by pasting data from another sheet So many columns and rows of data could be pasted in this enmasse. When u say "If Target.Cells.Count 1 Then Exit Sub" I believe that would mean that if in column N, If Yes or NO is pasted in 4 rows then it wouldnt work. ( For testing this I deleted that statement and tried the code and it didnt change the selection fill color automatically) Also the worksheet from which data is copied and pasted here would be such that we will be pasting data from column K through N or from column L through N. For example if I copy K3:N7 and I paste it in K8 then the code doesnt work So in above cases though the column N gets changed the code doesnt work. In short, Is it possible for the "Target.Cells.Count " to work when the count is greater than 1. Please guide me. ( I have slightly modified to code to suit my requirements..Please find it pasted below my signature) Regards, Hari India Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Cells.Count 1 Then Exit Sub ' I have made this line as a comment by entering an apostrophe thinking that If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red ElseIf LCase(Target.Value) = "no" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone ElseIf Target.Value < "" Then MsgBox "Please enter only yes or no in Column N" Selection.ClearContents Exit Sub End If End If End Sub "Ron de Bruin" wrote in message ... Try this Hari Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count 1 Then Exit Sub If Target.Column = 14 And Target.Row 2 Then If LCase(Target.Value) = "yes" Then Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = 3 ' red Else Range(Cells(Target.Row, "O"), Cells(Target.Row, "AG")) _ .Interior.ColorIndex = xlColorIndexNone End If End If End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Hari" wrote in message ... Hi, I have some a column N in a sheet called Raw Data. I have a cell dropdown saying "Yes" or "No". It could be possible that this Yes or No data is pasted from some other workbook in to Column N. I desire that if any row (starting from row no. 3 to used rows) within Column N has Yes then all columns from O to AG for that row change to Brown fill color or something like that. ( Actually if column N is a NO then its an indication that rest of the columns for that row will be blank) I thought of a crude code like the following but not able to convert it in to proper VB language. Private Sub Worksheet_Change(ByVal Target As Range) dim noofrows as integer noofrows = ?? ' Dunno a crisp formula for calculating the noofrows For i = 3 to noofrows If cells(noofrows,14) = "Yes" then Range("N"&noofrows&":AG"&noofrows).interior.colori ndex = 6 ' Actually I know that yellow is 6 But I prefer red or brown color to shade the culprit cells. End if Next noofrows End Sub Regards, Hari India |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Worksheet_change won't run | Excel Discussion (Misc queries) | |||
Worksheet_change | Excel Programming | |||
Worksheet_change | Excel Programming | |||
worksheet_change vs. calculate, and worksheet_change not running | Excel Programming | |||
worksheet_change vs. calculate, and worksheet_change not running | Excel Programming |