One of the variants, but this is not a modification of your macro ... :
Option Explicit
Sub ColourChange_v1()
Dim chrtnbr%, serColl%, i%, j%
Dim clr1&: clr1 = RGB(0, 176, 80) ' = 5287936
Dim clr2&: clr2 = RGB(192, 192, 0) ' = 49344
Dim clr3&: clr3 = RGB(192, 0, 0) ' = 192
Dim clr4&: clr4 = RGB(192, 0, 192) ' = 12583104
Dim wsht As Worksheet
For Each wsht In ThisWorkbook.Worksheets
With wsht
chrtnbr = .ChartObjects.Count
For i = 1 To chrtnbr
serColl = .ChartObjects(i).Chart.SeriesCollection.Count
For j = 1 To serColl
With .ChartObjects(i).Chart.SeriesCollection(j)
With .Interior
Select Case j
Case 1: .Color = clr1
Case 2: .Color = clr2
Case 3: .Color = clr3
Case 4: .Color = clr4
Case Else
MsgBox "Something's wrong with:" & vbCrLf & vbCrLf & _
"Sheet: '" & wsht.Name & "'" & vbCrLf & _
"Chart: '" & wsht.ChartObjects(i).Name & "'" & vbCrLf & _
"Series no: '" & CStr(j) & "'" & vbCrLf & _
"Series name: '" & wsht.ChartObjects(i).Chart.SeriesCollection(j).Name & "'" _
, vbOKOnly, "Info !"
End Select
End With
End With
Next
Next
End With
Next
End Sub
Bookmarks