ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Changing chart colours using VBA (https://www.excelbanter.com/excel-programming/352729-changing-chart-colours-using-vba.html)

TommoUK

Changing chart colours using VBA
 
Is it possible to change the colours of bars on a chart depending on the
value. For example, if a value is positive, colour the bar green, if
negative, colour it red. The 'invert if negative' check box within Excel sets
the bar to white if negative

JNW

Changing chart colours using VBA
 
With my limited knowledge, it seems that each number would need to be a
different series in order to change the color of each individual bar. Unless
your numbers are set up to have all negative numbers in one series and
positive in another.

If that is a possibility than changing the color of the bars is a matter of
recording a macro and cleaning it up.

Hope that at least gets you started.

"TommoUK" wrote:

Is it possible to change the colours of bars on a chart depending on the
value. For example, if a value is positive, colour the bar green, if
negative, colour it red. The 'invert if negative' check box within Excel sets
the bar to white if negative


czywrg[_2_]

Changing chart colours using VBA
 

This code does the trick for me (it is from an earlier posting). Just
select the chart before you run the code.

Sub ColorColumns()

Dim vntValues As Variant
Dim intSeries As Integer
Dim intPoint As Integer

With ActiveChart
For intSeries = 1 To .SeriesCollection.Count
With .SeriesCollection(intSeries)
vntValues = .Values
For intPoint = 1 To .Points.Count
If vntValues(intPoint) < 1 Then
' red column
..Points(intPoint).Interior.Color = _
RGB(255, 0, 0)
ElseIf vntValues(intPoint) 0 Then
' green column
..Points(intPoint).Interior.Color = _
RGB(0, 255, 0)
End If
Next
End With
Next
End With

End Sub


--
czywrg
------------------------------------------------------------------------
czywrg's Profile: http://www.excelforum.com/member.php...o&userid=31051
View this thread: http://www.excelforum.com/showthread...hreadid=509752



All times are GMT +1. The time now is 11:25 AM.

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