I might suggest reading up on error trapping. With an "onerror goto whatevername" statement, your code will go to that marker (whatevername
elsewhere in the code. Often you put all the code that normally executes, and then type "exit sub" which stops the sub at that point. Then between "exit sub" and "end sub" you put whatevername: (I usuaully use the word handler for whatevername), followed by the code that would run if your error stopped normal code function. There I would re-enable events, screenupdating, and stuff like protecting sheet.
Sorry I hope that makes some sense? If you have questions don't hesitate
Example:
Bookmarks