Create Multiple Copies of Master Sheet Automatically

How to create multiple copies of master sheet automatically based on entry of number of month.
Here’s the complete VBA code:
Option Explicit

Sub createSheetsForShiftsInMonth()
Dim CurYear As Long
Dim intMonth As Integer
Dim intDay As Integer
Dim intShift As Integer
Dim intNumDaysInMonth As Integer
Dim shtMaster As Worksheet
Dim strTemp As String

‘get the number of the desired month as 1 to 12

intMonth = InputBox(“enter the number of month. For example, 1 for January, 2 for February, etc.”)
CurYear = Year(Now())
intNumDaysInMonth = Day(DateSerial(CurYear, intMonth + 1, 0))
‘MsgBox intNumDaysInMonth

Set shtMaster = Worksheets(“Master”)

For intDay = 1 To intNumDaysInMonth
For intShift = 1 To 3
strTemp = MonthName(intMonth) & ” ” & intDay & ” Shift ” & intShift
shtMaster.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = strTemp
Next intShift
Next intDay

End Sub

Further reference:

How Many Days in a Month

Published by

Dinesh Kumar Takyar

Welcome to! My aim is to help you learn MS Excel including VBA. I always felt that a good way to learn something was to find solutions to problems in that domain. That is why I share these Excel videos with you. Mostly these are questions asked during my corporate training sessions. I've been training individuals and companies in computers since 1991. I did my B. Sc. (Vordiplom), M. Sc. (Diplom) and Ph.D. (Dr. rer. nat.) from Hamburg, Germany. The best thing about solving some of my visitor's questions is that I also gain new insights. For more Excel VBA solutions you may like to visit my YouTube channel: For a structured Excel VBA training course online you can visit:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.