Alec,
Re: changes on worksheet
There is a code module for each worksheet.
There is a standard/general code module.
There is a Class module.
And there is a UserForm module.
With code using Events (your example), it is necessary (most of the time) to turn off Event processing to prevent runaways/crashes...
A change runs the code which changes something which causes the Event code to repeat and so on.
The code statement to turn off events is: Application.EnableEvents = False
Using this statement requires it to be set to True before exiting the code.
That means you need an error handler to trap errors and enable events.
Also, every exit point in the code needs to enable events.
That said, why not just use formulas on the worksheet to handle your calculations?
'---
Free Exce add-ins and workbooks at MediaFire...