Here's another thought/variation: why delete the sheets when you
can just change the part that has changed? you can check to see if
a sheet exists with this code:
On Error Resume Next
Set wSheet = Sheets(tmsheets)
'<----tmsheet is the variable for the sheet name
If wSheet Is Nothing Then 'sheet Doesn't exist
'<---create the sheet or whatever you want to do
Set wSheet = Nothing
'<---reset the variable for the next time it's used
Else 'sheet Does exist
'<---do what you want to do with the sheet
End If
I am working on a program that essentially does the same thing
(create sheets of particular team categories from a main data
sheet), and have it set up to change the data on the main data sheet
whenever I change something on one of the team sheets. I found it
was much faster, when I did a Find match for the identifing line
code and just change that line, rather than erase the whole thing.
I also have it reset the named ranges when a new set of data is
being evaluated.
But, your situation and need might be a lot different, so that's
fine. Just thought I'd toss out those ideas.