Hi, rsk!
You can modify Luke M's post to something like this:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column<>1 or Target.Cells.Count>1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0,1).Value = Now
Target.Offset(0,2).Value = Application.Username
Application.EnableEvents = True
End Sub
If you want a kind of journal of each change (like a log or history) you should modify the 1 and the 2 Offset lines to the first empty column in Target.Row for 1, and plus 1 for 2.
In this way you'll have all the subsequent changes identified by time and username (not userid, if somebody knows how to get the userid, please let me know).
I think that msgbox won't be effective because, a) this is a shared workbook and you want to see the changes on line (in this case I don't know how to display a message box to you and not to the users that change column A cells), b) you open later the last version saved of the workbook (in this case if there were a lot of changes, the message box size may be suitable for displaying all the changes).
So, a history in the same row (last change or sequence of changes) will be the best approach. And if you can use columns B and adjacents, you can build the journaling on other righter columns, on another sheet or book: just update references in Target.Offset lines.
Hope it works. Thanks to Luke M for the appropriation of the structure code.
Regards!
PS: you might also want to track the previous value, but I think you can't do that from within the Change event code, maybe you can mix this event and the SelectionChange event to perform that action (I still don't know and think it isn't possible to obtain the "previous" value of a changed cell... again, if somebody knows... here I am)