|As far as moving the rows into an existing template, that would mean that you would need to create ~400 templates first, right?|
Why not create 1 template and then copy the template, rename it and then copy the data from each individual row into the new "template"?
I created a sheet named Template. The code copies that sheet after the last sheet and then pastes the rows from Sheet1 into Row 2 of each new template (based on the assumption that there is something in Row 1). Adjust as required.
It also picks up the "quantity" from Column D (adjust as desired) and uses that number to determine how many templates to create for each group. Since you can't have more than one sheet with the same name, it appends a number to the sheet name (1, 2, 3) as it renames them to avoid duplicates.
As written, you need a number in Column D for each group, even a 1. I'd autofill that column with a 1, and then you can just change it to a 2, 3, etc. as needed.
BTW...you can Select groups of sheets to print multiple sheets at the same time.
'Determine how many rows of data in Sheet1
lastRow = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
'Loop through all rows on Sheet1
For nxtRow = 1 To lastRow
'Determine how many templates to create for a group
numTemps = Sheets(1).Range("D" & nxtRow)
For CreateTik = 1 To numTemps
'Copy the Template Sheet(s)
'Name the new template based on the value in Col A and Quantity in Col D
ActiveSheet.Name = Sheets(1).Range("A" & nxtRow) & CreateTik
'Copy row from Sheet1 to Row 2 of new template
Sheets(1).Range("A" & nxtRow).EntireRow.Copy _
'Increase the font size of Row 2 to be 24
ActiveSheet.Rows(2).Font.Size = 24
Click Here Before Posting Data or VBA Code ---> How To Post Data or Code.