Forum Discussion

VickieMoody777's avatar
VickieMoody777
Copper Contributor
Jun 10, 2021
Solved

How to rename the worksheet tabs

Hi,

 

I need to create a macro to rename the existing worksheets with the date values on the cells A4:A26. I know there is a way through VBA coding, but I am struggling on how to create it. 

 

I have attached the spreadsheet.

 

Thanks, Vickie

  • HansVogelaar's avatar
    HansVogelaar
    Jun 11, 2021

    VickieMoody777 

    If you save the workbook with the original sheet names Sheet1, Sheet2 etc. as a macro-enabled template (.xltm), you can create a new workbook from the template each month.

    (You could also save the workbook under a new name at the end of the macro, so that the original remains unchanged)

8 Replies

  • AlwinAlexander's avatar
    AlwinAlexander
    Copper Contributor

    VickieMoody777 

     

    I hope the below code helps you out.

     

    Public Sub CopySheetAndRename()
    Dim newName As String

    On Error Resume Next
    newName = InputBox("Enter the name for the copied worksheet")

    If newName <> "" Then
    ActiveSheet.Copy After:=Worksheets(Sheets.Count)
    On Error Resume Next
    ActiveSheet.Name = newName
    End If
    End Sub
     

    • VickieMoody777's avatar
      VickieMoody777
      Copper Contributor
      Hello AlwinAlexander

      Thank you for replying and giving me the code, but that is not what I am trying to accomplish. All I need is a macro to automatically to rename existing worksheet tabs each month from the date values A4:A24 on the worksheet named "Daily Totals". Also the format should be "m.d". I attached the worksheet on my first post. I hope you can retrieve it.
  • VickieMoody777 

    Try this. Warning: you can run the macro only once.

    Sub RenameSheet()
        Dim i As Long
        Dim n As Long
        For i = 1 To 23
            On Error Resume Next
            Worksheets("Sheet" & i).Name = Format(Worksheets("Daily Totals").Range("A" & i + 3), "Short Date")
            If Err Then
                n = n + 1
                Worksheets("Sheet" & i).Name = "NotUsed" & n
            End If
        Next i
    End Sub
    • VickieMoody777's avatar
      VickieMoody777
      Copper Contributor

      Hello HansVogelaar:

       

      Thank you for the code and it did work. But I do need to have the macro available every month so I could use it every month when I update the tabs to a new month.

       

      Thank you!

      • HansVogelaar's avatar
        HansVogelaar
        MVP

        VickieMoody777 

        If you save the workbook with the original sheet names Sheet1, Sheet2 etc. as a macro-enabled template (.xltm), you can create a new workbook from the template each month.

        (You could also save the workbook under a new name at the end of the macro, so that the original remains unchanged)

Resources