I didn't read the whole thread till now. My bad. I thought you meant code comments. That'll teach me.

I don't see any procedures in your sheet module that should be in the sheet module. The only procedure that should be in the sheet module (the change event procedure) is in a standard mod. Am I missing something? If not, you might find this helpful: http://www.cpearson.com/excel/codemods.htm

After your procedures are put into the right modules, I think your problem is that when a worksheet is changed, you need to supply a range as a parameter to NewHires.

PS. I have to say that I personally find your variable naming convention difficult. I don't want to prescribe a naming method, but I would recommend commenting them in the future (wherever they are declared) when seeking help. I started with C, so I use Hungarian, and your prefixes confused me. Writing code for yourself is one thing, but writing code that will be shared is another thing altogether. The easier it's read, the easier it's understood, and the quicker your problems will be solved. Unsolicited advice. I know.