Hi there, and welcome to the forum. One of the mods may be along shortly to point out that code should be included between CODE tags - it's easy to do by clicking the # button on the editor. Anyway...
A couple of things:- You really don't need to copy the VBA code and have a separate function for each worksheet.
Instead, if you have a command button on the "template" worksheet that you're copying, just use that to call a function that does the work for you - Although you can just accept the code that's generated by recording a macro, it's usually quite inefficient.
In this particular case, VBA is selecting, using selections, reselecting... and it goes on.
Instead, replace the blahblah.select and selection.dostuffhere with direct references
So, here's an idea to get you started.
Put this in a new Module (right-click Object explorer -> Insert -> Module)
(Normally I wouldn't use "ActiveSheet", but if it's only going to be run from a command button on a worksheet it'll do the trick on this occasion)
This code should be associated with a command button on each template sheet - it just calls the function that's up there ^^^
When you copy that worksheet it'll create a worksheet with a command button on it.
Don't forget to tweak that code to suit your ranges and worksheet names etc.
HTH
Tim
Bookmarks