I'd suggest something like this partial solution
Sub ShowOnlyRed()
For Each cel In Range("Data")
With cel
If .Value = "red" Then
.Interior.ColorIndex = 3
Else
.Interior.ColorIndex = xlNone
End If
.NumberFormat = ";;;"
End With
Next
ActiveSheet.Shapes("Picture 1").Width = 0
End Sub
Sub ShowBlueSun()
For Each cel In Range("Data")
With cel
If .Value = "bluesun" Then
ActiveSheet.Shapes("Picture 1").Width = 25
ActiveSheet.Shapes("Picture 1").Left = .Left + 8
ActiveSheet.Shapes("Picture 1").Top = .Top - 3
Else
.Interior.ColorIndex = xlNone
End If
.NumberFormat = ";;;"
End With
Next
End Sub