This is problematical, as you will have no idea what the menu caption is at
any time.
Presuming that your menu is recreated every time you open the workbook, make
MenuItem a global variable, and then use that in the code
Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "H10" '<== change to suit
On Error GoTo ws_exit
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
MenuItem.Caption = .Value
End With
End If
ws_exit:
Application.EnableEvents = True
End Sub
'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click
--
HTH
Bob Phillips
(replace xxxx in the email address with gmail if mailing direct)
> Bob,
>
[quoted text clipped - 38 lines]
> > > If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
> > > With Target
Application.CommandBars("myCB").Controls("myButton").Caption =
> > > .Value
> > > End With
[quoted text clipped - 27 lines]
> > > >
> > > > DonH