vba button - find which was clicked
I always write wrappers for each button that then call the macro in question.
Like so:
Public Sub StoreButton_Click() Call StoreTransValues(ActiveSheet)End Sub
If you have only one button for any one page, you can just get the ActiveSheet property, and it will be the button on that page.
Edit:
Here's the code to get and use the name of the calling button:
Dim ButtonText As StringButtonText = Application.CallerActiveSheet.Shapes(ButtonText).Delete
You would use the .Move method to move the button.
I finally found the solution for determining which button in a Worksheet was pushed. Credit is due to Derk at http://www.ozgrid.com/forum/showthread.php?t=33351.
My final example code:
Sub HereIAm() Dim b As Object Dim cs, rs As Integer Dim ss, ssv As String Set b = ActiveSheet.Buttons(Application.Caller) With b.TopLeftCell rs = .Row cs = .Column End With ss = Left(Cells(1, cs).Address(False, False), 1 - (ColNumber > 26)) & rs ssv = Range(ss).Value MsgBox "Row Number " & rs & " Column Number " & cs & vbNewLine & _ "Cell " & ss & " Content " & ssvEnd Sub
If you don't need the cells label, Cells(rs,cs).Value works as well.