Tom Ogilvy wrote...
Just an added thought:
Now copy the data or the sheet to another workbook and print it with
whatever footer you desire.
....
If you really want to prevent users from doing certain things, you
gotta think nasty, something for which I'm better qualified than most
of the rest of you.
If macros are needed to ensure a workbook works properly, then include
do-nothing udfs returning VBA Empty variant values (equivalent to
what's returned by blank worksheet cells), and include them in *EVERY*
formula. If macros are disabled, so are udfs, in which case *ALL*
formulas would return #NAME?. If users want to print useless pages
filled with #NAME? errors with their own custom headers and footers, I
say let 'em until they blow through their paper and toner budgets.
So, when the only way to get useful results requires macros enabled,
then you can rely on event handlers. To prevent copying and pasting,
add code to the event handlers to make it difficult (though still not
impossible).
Note that even if copying from given workbooks were disabled, it'd
still be possible to pull data from such workbooks using external
reference links, e.g.,
='X:\Extremely\High\Security\[Document.xls]Well Protected'!A1
Basic rule of spreadsheet IP: if the file can be opened, *ANYTHING* in
it can be misused. Corollary: no spreadsheet, especially not Excel,
provides effective IP protection, so if you want to protect IP, don't
put it in a spreadsheet.