I changed the fill on your shape to have 4 stops then used this code to change the fill level when column D changes:
See attached - add or change values in column D.![]()
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Range("D:D"), Target) Is Nothing Then Exit Sub Dim p As Double p = 1 - Range("H4").Value If p < 0 Then p = 0 If p > 1 Then p = 1 With ActiveSheet.Shapes("Can 1").Fill .GradientStops(3).Position = p .GradientStops(2).Position = p End With End Sub
WBD
Bookmarks