Preventing Changes to Formatting and Page Size

April described an all-too-common situation in an office environment: you create a worksheet, get it looking just right, protect it, and then allow others to make changes to the unprotected cells. When you get the worksheet back, there have been changes to the page setup and the formatting that makes the worksheet look different than what you intended.

There are a couple approaches you can take with this problem. The first is to divide your input and output into separate sheets. Create a worksheet where the user can enter their data, and then create an output worksheet that you use to print the data. The output worksheet simply grabs data from the input worksheet through the use of cell references and formulas. Since the user doesn’t have access to the output worksheet, then it can’t get mucked up.

If the worksheet has been protected, Excel allows you to explicitly allow or prohibit formatting changes when you turn on the protection. Prohibiting formatting changes doesn’t protect you all the time, however. One exception is if the user copies formatted cells from another worksheet and pastes them into unlocked cells in the protected worksheet. There is no way to prevent this, short of using the input sheet/output sheet method already described.

As far as page setup is concerned, Excel allows the page setup (margins, etc.) to be modified, even on a protected worksheet. The best workaround is to create a macro that will set the page setup configuration as you want it, and have the macro run automatically before the worksheet is printed. (Just assign the macro to the BeforePrint event for the workbook.)

If the other user still monkeys around with the settings in a way that rendered the output of the workbook non-standard or even unusable, you may need to resort to non-Excel means to assure compliance. :>)