Hello try the following:
Private Sub Ad_SheetNButton()
Dim ws As Worksheet, cb As OLEObject
Application.ScreenUpdating = False
With ThisWorkbook
.Worksheets.Add , .Sheets(.Sheets.Count)
Set ws = .Sheets(.Sheets.Count)
End With
With ws
Set cb = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Left:=.Cells(1, 1).Left, _
Top:=.Cells(1, 1).Top, _
Width:=.Cells(1, 1).Width * 2, _
Height:=Cells(1, 1).RowHeight * 2)
With cb
.Placement = xlMove
With .Object
.BackColor = &HFF&
.Caption = "Press Me"
End With
End With
ThisWorkbook.VBProject.VBComponents(.CodeName).CodeModule. _
insertlines 1, _
"Private Sub CommandButton1_Click()" & vbLf & _
"Application.Run ""Ad_SheetNButton""" & vbLf & _
"End Sub"
End With
Application.ScreenUpdating = True
End Sub