Here is an attachment that works through the data. There are two worksheets (for simplicity).
Worksheet:
Show
Show has data in Col. B, D, F, H, J. Beside each number is an AutoShape. Each AutoShape is numbered AS2 through AS37. They are number from right -to-left (although the second is the sequence is third (just because of the originals etup - didn't have time to change).
Worksheet:
Work
Work has formulas to check various data points in each row. The AutoShape reference is in Column C. The formulas in Col. A compare values on Show (4 comparisons in separate rows for each category).
To update the AutoShapes, click on the button ("Update Chart Arrows).
Here is the code: Notice that there are four separate macros. The first is the controlling macro and checks the values in Column A on Work. Then depending on its value, it will proceed to the proper color to change the direction and color of the AutoShape.
Code:
Sub OriginalValueCheck()
'This checks the cells in Column A on worksheet Work (rows 2 through 37)
Application.ScreenUpdating = False
Dim i As Long
Sheets("Work").Visible = True
Sheets("Work").Select
For i = 2 To 37
Select Case Cells(i, 1).Value
Case Is < 0: RedAutoShape i
Case Is > 0: GreenAutoShape i
Case 0: OrangeAutoShape i
End Select
Next i
Sheets("Work").Visible = False
Sheets("Show").Select
Application.ScreenUpdating = True
End Sub
Code:
Sub RedAutoShape(i)
Sheets("Show").Select
With ActiveSheet.Shapes("MattAS " & i)
.AutoShapeType = msoShapeDownArrow
.Fill.Visible = msoTrue
.Fill.ForeColor.SchemeColor = 10
.Line.ForeColor.SchemeColor = 10
.Rotation = 0#
End With
Sheets("Work").Select
End Sub
Code:
Sub GreenAutoShape(i)
Sheets("Show").Select
With ActiveSheet.Shapes("MattAS " & i)
.AutoShapeType = msoShapeUpArrow
.Fill.Visible = msoTrue
.Fill.ForeColor.SchemeColor = 57
.Line.ForeColor.SchemeColor = 57
.Rotation = 0#
End With
Sheets("Work").Select
End Sub
Code:
Sub OrangeAutoShape(i)
Sheets("Show").Select
With ActiveSheet.Shapes("MattAS " & i)
.AutoShapeType = msoShapeLeftRightArrow
.Fill.Visible = True
.Fill.ForeColor.SchemeColor = 52
.Line.ForeColor.SchemeColor = 52
.Rotation = 0#
End With
Sheets("Work").Select
End Sub
HTH