A button is not a snap
I think this may be over kill, but here it is. I suggest you try it on a practice app at first to see if you will use this.
<table style="border-collapse:collapse; mso-padding-alt:0in 5.4pt 0in 5.4pt" border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td style="width:1.7in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">
Sub
</td> <td style="width:202.5pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="338">
Purpose
</td> </tr> <tr> <td style="width:1.7in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">
Sub enable25()
</td> <td style="width:202.5pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="338">
Run to enable button
</td> </tr> <tr> <td style="width:1.7in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">
Sub disable25()
</td> <td style="width:202.5pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="338">
Run to disable button
</td> </tr> <tr> <td style="width:1.7in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">
Disable_Enable()
</td> <td style="width:202.5pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="338">
Does the work
</td> </tr> <tr> <td style="width:1.7in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">
DoNothing()
</td> <td style="width:202.5pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="338">
Runs when disabled button is pressed
</td> </tr> <tr> <td style="width:1.7in;padding:0in 5.4pt 0in 5.4pt" valign="top" width="204">
DoSomething()
</td> <td style="width:202.5pt;padding:0in 5.4pt 0in 5.4pt" valign="top" width="338">
Runs when enabled button is pressed
</td> </tr> </tbody></table>
‘=============================================
Sub enable25() Disable_Enable True, "Button 25"
End Sub
‘=============================================
Sub disable25() Disable_Enable False, "Button 25"
End Sub
‘=============================================
Sub Disable_Enable(bEnable As Boolean, bname As String) Select Case bEnable Case False With ActiveSheet.Shapes(bname) .OnAction = "DoNothing"
.Select
End With
Selection.Characters.Font.ColorIndex = 15
Case Else With ActiveSheet.Shapes(bname) .OnAction = "DoSomething"
.Select
End With
Selection.Characters.Font.ColorIndex = xlAutomatic
End Select
SendKeys "{ESC}"
End Sub
‘=============================================
Sub DoNothing() Exit Sub
End Sub
‘=============================================
Sub DoSomething()MsgBox "Enabled"
End Sub
‘=============================================