vba button - find which was clicked
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 " & ssv
End Sub
If you don't need the cells label, Cells(rs,cs).Value works as well.
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 String
ButtonText = Application.Caller
ActiveSheet.Shapes(ButtonText).Delete
You would use the .Move method to move the button.