Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
I have a bar chart that I would like to format the color depending on the
value in the data range. If the value of the data point is 1 I'd like to format the bar in the chart red, if the value is 2 then blue, if the value is 3 then gold and if the value is 4 then green. I read some earlier posts and I feel more comfotabel using some vba in order to complete this. I did try to use a function posted in an answer to another question but I get the following error at this line " Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt)": Run Time Error 91 Here is the code: Sub ColorBars() Application.ScreenUpdating = False Dim Rng As Range Dim Cnt As Integer Cnt = 1 For Each Rng In Range("G66:G77") Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt) If Rng.Value = "1" Then Pts.Interior.ColorIndex = 24 ElseIf Rng.Value = "3" Then Pts.Interior.ColorIndex = 15 ElseIf Rng.Value = "4" Then Pts.Interior.ColorIndex = 19 End If Cnt = Cnt + 1 Next Rng End Sub |
#2
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
You don't really need VBA:
http://peltiertech.com/Excel/Charts/...nalChart1.html If you really want to use VBA, here is a technique: http://peltiertech.com/WordPress/vba...arts-by-value/ - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I have a bar chart that I would like to format the color depending on the value in the data range. If the value of the data point is 1 I'd like to format the bar in the chart red, if the value is 2 then blue, if the value is 3 then gold and if the value is 4 then green. I read some earlier posts and I feel more comfotabel using some vba in order to complete this. I did try to use a function posted in an answer to another question but I get the following error at this line " Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt)": Run Time Error 91 Here is the code: Sub ColorBars() Application.ScreenUpdating = False Dim Rng As Range Dim Cnt As Integer Cnt = 1 For Each Rng In Range("G66:G77") Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt) If Rng.Value = "1" Then Pts.Interior.ColorIndex = 24 ElseIf Rng.Value = "3" Then Pts.Interior.ColorIndex = 15 ElseIf Rng.Value = "4" Then Pts.Interior.ColorIndex = 19 End If Cnt = Cnt + 1 Next Rng End Sub |
#3
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
I get a run time error 91 at the following line
With ActiveChart.SeriesCollection(1) Is there a specific item in reference library I need to add? "Jon Peltier" wrote: You don't really need VBA: http://peltiertech.com/Excel/Charts/...nalChart1.html If you really want to use VBA, here is a technique: http://peltiertech.com/WordPress/vba...arts-by-value/ - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I have a bar chart that I would like to format the color depending on the value in the data range. If the value of the data point is 1 I'd like to format the bar in the chart red, if the value is 2 then blue, if the value is 3 then gold and if the value is 4 then green. I read some earlier posts and I feel more comfotabel using some vba in order to complete this. I did try to use a function posted in an answer to another question but I get the following error at this line " Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt)": Run Time Error 91 Here is the code: Sub ColorBars() Application.ScreenUpdating = False Dim Rng As Range Dim Cnt As Integer Cnt = 1 For Each Rng In Range("G66:G77") Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt) If Rng.Value = "1" Then Pts.Interior.ColorIndex = 24 ElseIf Rng.Value = "3" Then Pts.Interior.ColorIndex = 15 ElseIf Rng.Value = "4" Then Pts.Interior.ColorIndex = 19 End If Cnt = Cnt + 1 Next Rng End Sub |
#4
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
Error numbers are not nearly as descriptive as error messages.
Error 91 has the message "Object variable not set". The object it is looking for is ActiveChart. Select a chart and try again. However, I suggest you use the non-VBA approach. It is easier to set up and easier to debug. - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I get a run time error 91 at the following line With ActiveChart.SeriesCollection(1) Is there a specific item in reference library I need to add? "Jon Peltier" wrote: You don't really need VBA: http://peltiertech.com/Excel/Charts/...nalChart1.html If you really want to use VBA, here is a technique: http://peltiertech.com/WordPress/vba...arts-by-value/ - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I have a bar chart that I would like to format the color depending on the value in the data range. If the value of the data point is 1 I'd like to format the bar in the chart red, if the value is 2 then blue, if the value is 3 then gold and if the value is 4 then green. I read some earlier posts and I feel more comfotabel using some vba in order to complete this. I did try to use a function posted in an answer to another question but I get the following error at this line " Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt)": Run Time Error 91 Here is the code: Sub ColorBars() Application.ScreenUpdating = False Dim Rng As Range Dim Cnt As Integer Cnt = 1 For Each Rng In Range("G66:G77") Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt) If Rng.Value = "1" Then Pts.Interior.ColorIndex = 24 ElseIf Rng.Value = "3" Then Pts.Interior.ColorIndex = 15 ElseIf Rng.Value = "4" Then Pts.Interior.ColorIndex = 19 End If Cnt = Cnt + 1 Next Rng End Sub |
#5
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
I assigned the macro to the chart and click the chart in order to run the
macro. How do I activate the chart in that case? "Jon Peltier" wrote: Error numbers are not nearly as descriptive as error messages. Error 91 has the message "Object variable not set". The object it is looking for is ActiveChart. Select a chart and try again. However, I suggest you use the non-VBA approach. It is easier to set up and easier to debug. - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I get a run time error 91 at the following line With ActiveChart.SeriesCollection(1) Is there a specific item in reference library I need to add? "Jon Peltier" wrote: You don't really need VBA: http://peltiertech.com/Excel/Charts/...nalChart1.html If you really want to use VBA, here is a technique: http://peltiertech.com/WordPress/vba...arts-by-value/ - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I have a bar chart that I would like to format the color depending on the value in the data range. If the value of the data point is 1 I'd like to format the bar in the chart red, if the value is 2 then blue, if the value is 3 then gold and if the value is 4 then green. I read some earlier posts and I feel more comfotabel using some vba in order to complete this. I did try to use a function posted in an answer to another question but I get the following error at this line " Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt)": Run Time Error 91 Here is the code: Sub ColorBars() Application.ScreenUpdating = False Dim Rng As Range Dim Cnt As Integer Cnt = 1 For Each Rng In Range("G66:G77") Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt) If Rng.Value = "1" Then Pts.Interior.ColorIndex = 24 ElseIf Rng.Value = "3" Then Pts.Interior.ColorIndex = 15 ElseIf Rng.Value = "4" Then Pts.Interior.ColorIndex = 19 End If Cnt = Cnt + 1 Next Rng End Sub |
#6
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
ActiveSheet.ChartObjects(Application.Caller).Activ ate
Application.Caller is the shape/chartobject that contains the chart. - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I assigned the macro to the chart and click the chart in order to run the macro. How do I activate the chart in that case? "Jon Peltier" wrote: Error numbers are not nearly as descriptive as error messages. Error 91 has the message "Object variable not set". The object it is looking for is ActiveChart. Select a chart and try again. However, I suggest you use the non-VBA approach. It is easier to set up and easier to debug. - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I get a run time error 91 at the following line With ActiveChart.SeriesCollection(1) Is there a specific item in reference library I need to add? "Jon Peltier" wrote: You don't really need VBA: http://peltiertech.com/Excel/Charts/...nalChart1.html If you really want to use VBA, here is a technique: http://peltiertech.com/WordPress/vba...arts-by-value/ - Jon ------- Jon Peltier, Microsoft Excel MVP Peltier Technical Services, Inc. http://PeltierTech.com/WordPress/ _______ "Qaspec" wrote in message ... I have a bar chart that I would like to format the color depending on the value in the data range. If the value of the data point is 1 I'd like to format the bar in the chart red, if the value is 2 then blue, if the value is 3 then gold and if the value is 4 then green. I read some earlier posts and I feel more comfotabel using some vba in order to complete this. I did try to use a function posted in an answer to another question but I get the following error at this line " Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt)": Run Time Error 91 Here is the code: Sub ColorBars() Application.ScreenUpdating = False Dim Rng As Range Dim Cnt As Integer Cnt = 1 For Each Rng In Range("G66:G77") Set Pts = ActiveChart.SeriesCollection(1).Points(Cnt) If Rng.Value = "1" Then Pts.Interior.ColorIndex = 24 ElseIf Rng.Value = "3" Then Pts.Interior.ColorIndex = 15 ElseIf Rng.Value = "4" Then Pts.Interior.ColorIndex = 19 End If Cnt = Cnt + 1 Next Rng End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Conditional Format of a Line Chart? | Charts and Charting in Excel | |||
Conditional format - gant chart | Excel Discussion (Misc queries) | |||
Conditional Format - Format Transfer To Chart | Excel Discussion (Misc queries) | |||
Chart - conditional format | Charts and Charting in Excel | |||
Can I conditional format a chart? | Charts and Charting in Excel |