I'm probably missing something very simple here but, I have cobbled together the following code VBA code in Excel,, mainly from answers I've seen here and this runs OK. However what I would like to do, is have the Cells(3, 3) be replaced by startlocation.Address but no matter how I try to arrange it I keep get an error message. So, is there a way of converting startlocation.Address into the Cells( ) format?
Public Sub Button1_Click()
Dim buttonName As String
Dim buttonCell As Range
Dim startlocation As Range
Dim qtyvalue As Long
Dim stepcount As Long
buttonName = Application.Caller
Set buttonCell = ActiveSheet.Shapes(buttonName).TopLeftCell
MsgBox buttonCell.Address ' display the address of the button, which in this case is D1
Set startlocation = buttonCell.Offset(2, -3) ' from the postion of the button, move to the cell (here it's A3) with the first piece of wanted data
MsgBox startlocation ' display value within cell A3, which in this case is 89
MsgBox startlocation.Address 'show the address of startlocation which in this case is A3
' on Master sheet cell (89,16) put the value of cell (3,3), which in this case is 4
Sheets("Master").Cells(startlocation, 16).Value = Sheets("Menu2").Cells(3, 3).Value
I'm trying to get contents of C3 to be copied to P89 (the 89 is derived from A3) on master sheet.

... = Sheets("Menu2").Range(startlocation.Address).Valuenot too sure exactly which part is the problem. Might help to explain in simple words what the code's intended purpose is. Which sheet is the button located on?