How would your code know to switch views only if a cell in column E has changed (the bottom-most cell in the list)?
That is what the:
And Target.Column = 5 Then
was for however if you want to make sure it's the bottome cell too then you'll need to adjust it to:
Private Sub Worksheet_Change(ByVal Target As Range)
dim lngRow as Long
If Target.Cells.Count = 1 Then
lngRow=Me.cells(65536,target.column).End(xlUp).Row
If Len(Trim$(Target.Value)) > 0 And Target.Column = 5 and target.Row=lngRow Then
ThisWorkbook.CustomViews("View " & Right$(Target.Value, 1)).Show
End If
End If
Target.Offset(1, 0).Select
End Sub
Validation lists should fire the change event. A quick check in my excel showed this - what version of Excel are you using?