ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   "what triggered the event" (https://www.excelbanter.com/excel-programming/301897-what-triggered-event.html)

Rod Jones

"what triggered the event"
 
I need command buttons on a spreadsheet to change color on
the mouse_down and then back on the mouse_up events. But
rather the writing the code for the mousedown/up event for
each individual button, I want to write two subs (one for
mouse_down and other for mouse_up) that that will be
called by the buttons e.g.

Private Sub Button_Mouse_Down()
"WhichButtonCalledMe".backColor = RGB(255,0,0)
End sub

Private Sub Button_Mouse_Up()
"WhichButtonCalledMe".Backcolor = RGB(0,255,0)
End Sub

How do I find out what button called the subs?
Hope this makes sense to someone out there.




Harald Staff

"what triggered the event"
 
Hi

This is what Classes do. Insert a class module. Name it MyBtn. Put this code
in it:

Option Explicit

Public WithEvents Btn As MSForms.CommandButton

Private Sub Btn_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Btn.BackColor = RGB(255, 0, 0)
End Sub

Private Sub Btn_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Btn.BackColor = RGB(0, 255, 0)
End Sub

Now in your sheet module put this code:

Option Explicit

Dim B1 As New MyBtn
Dim B2 As New MyBtn
Dim B3 As New MyBtn

Private Sub Worksheet_Activate()
Set B1.Btn = Me.CommandButton1
Set B2.Btn = Me.CommandButton2
Set B3.Btn = Me.CommandButton3
End Sub

You may have to deactivate/reactivate the sheet before it works
properly -Activate probably isn't the best place to assign the class. But
it's a demo, I hope it gets you started in the right direction.

HTH. Best wishes Harald



"Rod Jones" skrev i melding
...
I need command buttons on a spreadsheet to change color on
the mouse_down and then back on the mouse_up events. But
rather the writing the code for the mousedown/up event for
each individual button, I want to write two subs (one for
mouse_down and other for mouse_up) that that will be
called by the buttons e.g.

Private Sub Button_Mouse_Down()
"WhichButtonCalledMe".backColor = RGB(255,0,0)
End sub

Private Sub Button_Mouse_Up()
"WhichButtonCalledMe".Backcolor = RGB(0,255,0)
End Sub

How do I find out what button called the subs?
Hope this makes sense to someone out there.







All times are GMT +1. The time now is 06:01 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com