You have to be very careful here because you are using SaveCopyAs. You want to make sure that you remove formulas from the copy, not your original workbook. I suggest using SaveAs instead. Here is what I would do:
Private Sub CommandButton3_Click()
Dim mbResult As Integer
Dim w As Worksheet
mbResult = MsgBox("Are you sure you want to proceed?", _
vbYesNo)
Select Case mbResult
Case vbYes
For Each w In ActiveWorkbook.Worksheets
w.Calculate
w.Cells.Copy
w.Cells.PasteSpecial xlPasteValues
Next w
ActiveWorkbook.SaveAs ("My Directory is Here\" _
& Format("Week Ending ") & Format(Now() + 1, "dd mmm, yyyy") & ".xlsm")
Case vbNo
'Do NOT allow the macro to run
End Select
End Sub
However, when this code finishes, the active workbook will now be the copy, with its new name. Using SaveCopyAs leaves the original workbook as the active workbook and does not open the copy.
Edit: I assumed you have multiple worksheets but if not then you don't need the For loop. You can just copy and paste on Worksheets(1).
Bookmarks