Format Chart Based on Point Values
A recent post to the Microsoft Excel Charting Discussion Group asks . . . how can I change the pattern of a column based on that column's value. Assuming an embedded chart, I responded with the following procedure:
Sub ChangePatterns()
Application.ScreenUpdating = False
Dim Cht As Chart
Dim Srs As Series
Dim Pts As Points
Set Cht = ActiveChart
Set Srs = Cht.SeriesCollection(1)
Set Pts = Srs.Points
Cnt = 1
For Each Pt In Srs.Values
Srs.Points(Cnt).Select
'Sales greater than 10000
If Pt > 10000 Then
With Selection
.Fill.Visible = True
.Fill.Patterned Pattern:=msoPatternWideUpwardDiagonal
.Fill.ForeColor.SchemeColor = 42
.Fill.BackColor.SchemeColor = 34
End With
'Sales less than or equal to 10000
ElseIf Pt <= 10000 Then
With Selection
.Fill.Visible = True
.Fill.Patterned Pattern:=msoPatternLightHorizontal
.Fill.ForeColor.SchemeColor = 43
.Fill.BackColor.SchemeColor = 22
End With
End If
Cnt = Cnt + 1
Next Pt
ActiveChart.Deselect
End Sub
-- Just thought I would document it for my own reference. Is there a better way to write this?