Sub SumColorRanges()
Dim iColor As Integer
ReDim iSum(34 To 40) As Long
Dim Rng As Range, Rng0 As Range
Set Rng = Range("B1:C16"): Application.ScreenUpdating = False
For Each Rng0 In Rng
With Rng0
Randomize: iColor = 34 + Int(6 * Rnd)
.Interior.ColorIndex = iColor
.Interior.Pattern = xlSolid
iSum(iColor) = iSum(iColor) + .Value
End With
Next Rng0
Set Rng = Range("A19"): Set Rng0 = Range("A18")
For iColor = 0 To 6
Rng.Offset(, iColor).Value = iSum(iColor + 34)
Rng0.Offset(, iColor).Interior.ColorIndex = iColor + 34
Rng0.Offset(, iColor).Value = iColor + 34
Next iColor
Set Rng = Nothing: Set Rng0 = Nothing
Application.ScreenUpdating = True
End Sub