Create a new spreadsheet with name referencing a value in another sheet

Pete81

New Member
Joined
Aug 27, 2015
Messages
26
Hello,

Basically, I am trying to set up a macro which, when I push a button, will do the following:

1) Create a new spreadsheet
2) Copy the data from an existing sheet (the one with the button) to the spreadsheet
3) Rename the new spreadsheet according to a value within the existing sheet.

I need to be able to do this ad infinitum, and one of the problems I am facing is with spreadsheet naming. At best, the macro works once.

Can anyone help?
 

Some videos you may like

Excel Facts

Which Excel functions can ignore hidden rows?
The SUBTOTAL and AGGREGATE functions ignore hidden rows. AGGREGATE can also exclude error cells and more.

onlyadrafter

Well-known Member
Joined
Aug 19, 2003
Messages
5,703
Platform
  1. Windows
Hello,

If you are only copying from the master file try

Code:
Sub CREATE_NEW()
    MY_BOOK = ActiveWorkbook.Name
    MY_SHEET = ActiveSheet.Name
    MY_NAME = Range("A1").Value
    Workbooks.Add
    With ActiveWorkbook
        .SaveAs "C:\" & MY_NAME & ".xls"
        Workbooks(MY_BOOK).Sheets(MY_SHEET).Cells.Copy
        Workbooks(MY_NAME).ActiveSheet.Range("A1").PasteSpecial (xlPasteAll)
    End With
    Application.CutCopyMode = False
End Sub

if you will be copying from the copy file then try

Code:
Sub COPY_NEW()
    MY_SHEET = ActiveSheet.Name
    With ActiveWorkbook
        .Save
        .SaveAs "C:\" & Range("A1").Value & ".xls"
    End With
    For MY_SHEETS = ActiveWorkbook.Sheets.Count To 1 Step -1
        Application.DisplayAlerts = False
        If Sheets(MY_SHEETS).Name <> MY_SHEET Then
            Sheets(MY_SHEETS).Delete
        End If
    Next MY_SHEETS
    Application.DisplayAlerts = True
    Application.CutCopyMode = False
End Sub

Do either of these help?
 

Watch MrExcel Video

Forum statistics

Threads
1,118,168
Messages
5,570,604
Members
412,330
Latest member
carlosjw
Top