How to trigger a Worksheet_BeforeDoubleClick macro with a command button?

The code below works great, but it’s triggered by the value in cell H1.  I want to be able to trigger it by a command button.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
 ' This subroutine colors a cell red when double-clicked then clears it when double-clicked again.
 ' Some values for .ColorIndex are...
 ' Red = 3, Green = 4, Blue = 5, Yellow = 6, Orange = 45
 ' Google "VBA color palette" for more colors
  If Sheets("HPSM").Range("H1").Value = "Off" Then
Exit Sub

  If Intersect(Target, Range("B3:B10")) Is Nothing Then Exit Sub
     ' If the cell is clear
     If Target.Interior.ColorIndex = xlNone Then
         ' Then change the background color to yellow
         Target.Interior.ColorIndex = 27
     ' Else if the cell background color is yellow
     ElseIf Target.Interior.ColorIndex = 27 Then
         ' Then clear the background
         Target.Interior.ColorIndex = xlNone
     End If
     ' This is to prevent the cell from being edited when double-clicked
     'Cancel = True
  End If
 End Sub

Open in new window

Here is my attempt.
Private Sub CommandButton23_Click()
On Error GoTo ErrorRoutine
Application.ScreenUpdating = False
If CommandButton23.Caption = "On" Then
    CommandButton23.Caption = "Off"
    CommandButton23.BackColor = vbRed
    CommandButton23.Caption = "On"
    CommandButton23.BackColor = vbGreen
    Call Worksheet_BeforeDoubleClick(Selection, True)
    End If
Application.ScreenUpdating = True
Exit Sub
End Sub

Open in new window

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Martin LissOlder than dirtCommented:
Here's an example

Worksheet_BeforeDoubleClick Range("A1"), False
Martin LissOlder than dirtCommented:
So try changing your line 11 to

Worksheet_BeforeDoubleClick Selection, True

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
kbay808Author Commented:
That worked!!!  Thanks
Martin LissOlder than dirtCommented:
You're welcome and I'm glad I was able to help.

In my profile you'll find links to some articles I've written that may interest you.
Marty - MVP 2009 to 2015
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
VB Script

From novice to tech pro — start learning today.