ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Worksheet_change - Murdering syntax (https://www.excelbanter.com/excel-programming/305862-worksheet_change-murdering-syntax.html)

Hari[_3_]

Worksheet_change - Murdering syntax
 
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



Ron de Bruin

Worksheet_change - Murdering syntax
 
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





Hari[_3_]

Worksheet_change - Murdering syntax
 
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







Ron de Bruin

Worksheet_change - Murdering syntax
 
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









Hari[_3_]

Worksheet_change - Murdering syntax
 
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











Ron de Bruin

Worksheet_change - Murdering syntax
 
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













Hari[_3_]

Worksheet_change - Murdering syntax
 
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















Ron de Bruin

Worksheet_change - Murdering syntax
 
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

















Hari[_3_]

Worksheet_change - Murdering syntax
 
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




















All times are GMT +1. The time now is 10:56 PM.

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