' Create series of 12 new Monthly sheets
' code is assigned to a cmb button called "Create New Sheets"
'
Option Explicit
Option Compare Text 'makes typed text NON CASE sensitive
Sub Copy_Monthly_Template_Sheet()
Dim i As Integer, j As Long, strName As String, yr As Long
If MsgBox("You are about to create 12 New Sheets from the Template. Do you really want to continue?", _
vbQuestion + vbYesNo) = vbNo Then Exit Sub
Application.ScreenUpdating = False
Application.EnableEvents = False 'This prevents any Change Event procedure from firing.
yr = 2021 'Don't need to change this "yyyy" as code will automatically find the last "yyyy" used.
Do Until Not Evaluate("ISREF('Dur Dec " & yr & "'!A1)") 'change "Dur" to suit the first part of your required sheet name.
yr = yr + 1
Loop
j = Sheets("Dur Dec " & (yr - 1)).Index 'Again change "Dur" to suit the first part your required sheet name
For i = 1 To 12
strName = "Dur " & Format(i & "/" & yr, "mmm yyyy") 'Again change "Dur" to suit the first part your required sheet name
If Evaluate("ISREF('" & strName & "'!A1)") Then 'Test if worksheet name already exists
MsgBox strName, , "This Sheet already Exists, will skip to the next one"
Sheets(strName).Move After:=Sheets(j)
Else
Sheets("Dur Templ 2019").Copy After:=Sheets(j) 'This is name of Template to copy, change it to suit yours
ActiveSheet.Name = strName
End If
j = j + 1
Next i
Application.ScreenUpdating = True
Application.EnableEvents = True 'Re-enable Change Event procedures
End Sub