Excel crashes due to an event cascade failure. You are using the Worksheet_Change event to capture when a cell is changed. When you change a cell in the event, the event calls it self again, and round round we go until there is no stack space left.
Fortunately, you can stop the madness. "Application.EnableEvents" controls the triggering of Excel's events. Always disable the events before you change a cell in the Worksheet_Change event, and re-enable the events before exiting the Sub.