not really what you probably want, but as a last resort perhaps you should trigger this code by a worksheet_change event or a worksheet_calculate event - that way if the protection was changed, as soon as the user does anything causing the worksheet to change or re-calculate, it would check the protection property, and run your code. like i said, it wouldn't be the ideal solution, but until you can come up with an alternative, it would do the job, albeit in a round-about fashion.
kevin