Sorry for the garbage earlier -- this seems to test well, if I understand the requirement.
IGNORE all of my prior code [ some would argue "in all threads"
] and this either as your only worksheet change event on the sheet module, or incorporated into an existing sheet change event.
<font face=Courier New><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> Worksheet_Change(<SPAN style="color:#00007F">ByVal</SPAN> Target <SPAN style="color:#00007F">As</SPAN> Range)
<SPAN style="color:#00007F">Static</SPAN> MyState <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Variant</SPAN>
Application.EnableEvents = <SPAN style="color:#00007F">False</SPAN>
<SPAN style="color:#00007F">If</SPAN> <SPAN style="color:#00007F">Not</SPAN> Intersect(Target, [I11]) <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN>
<SPAN style="color:#007F00">' Here if I11 changed</SPAN>
<SPAN style="color:#00007F">If</SPAN> Target.Value = MyState <SPAN style="color:#00007F">Then</SPAN>
<SPAN style="color:#007F00">' Here if I11's value has not changed.</SPAN>
<SPAN style="color:#00007F">GoTo</SPAN> Xit
<SPAN style="color:#00007F">ElseIf</SPAN> Target.Value = <SPAN style="color:#00007F">True</SPAN> <SPAN style="color:#00007F">Then</SPAN>
<SPAN style="color:#007F00">' YOUR CODE HERE</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
Xit:
MyState = Target.Value
Application.EnableEvents = <SPAN style="color:#00007F">True</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN></FONT>