|I'm confused, but we'll get to that later.|
First, about your code:
As far as I can tell, your code is supposed to prevent users from editing any cell in Column E. At least that what it does when I put it in a worksheet module.
If that's the case, then I think the proper way to do this is like this:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 Then
MsgBox "You may not edit this cell"
The ByVal Target As Range argument passes everything that Excel knows about the Target cell to the Sub procedure so that you can use the attributes in the Sub.
"Buried" in the argument is the contents of the target cell, the column, the row, the format, etc. etc. Therefore you don't have to parse out the "E" from the ActiveCell.Address, you just have to check and see if the Target.Column = 5. Using Target is very powerful.
OK, now back to my confusion...
this works for updating an individual column.
i want to protect the entire column but if i do i cant use the buttons
As far as I can tell your code prevents the updating of an individual column (specifically "E") and therefore protects it.
I must be missing what you are trying to do.