The user is able to select a formatting mode on a column basis (via a menu option), these, for example, can select the column be all upper-case, or name-case etc, the user can then type all in lower-case and the program will correct it for them as they go along, these are inexperienced users who may have no typing skill. I agree that the program could change the entire cell in Validating, except for the shift key, this key is used to reverse the normal formatting on the next character, as an example if using name-case the program would change mccartney to Mccartney but by shifting the 2nd c the user can make the program change it to McCartney and there's no way that I can think of to detect, after the event, that shift had been pressed on that 2nd c.