Hi davepoth,
try the code below - I tried to explain it on the go
Private Sub Worksheet_Change(ByVal Target As Range)
Dim icv$
'If the change in any other column than column E, then exit sub
If Target.Column <> 5 Then Exit Sub
'Prevent the worksheet_change sub from firing itself over and over again :)
Application.EnableEvents = False
'If more than one cell at the same time is altered, undo the change and exit the sub.
If Target.Count > 1 Then Application.Undo: Application.EnableEvents = True: Exit Sub
'Turn of screenupdating for smoother and faster working
Application.ScreenUpdating = False
'Get the new value
icv = Target.Value
'Undo the change
Application.Undo
'Check if the cell was empty before the change - if so, put the value back into the cell, else put it at the bottom of the column
If Target.Value <> "" Then Cells(Rows.Count, Target.Column).End(xlUp).Offset(1, 0).Value = icv Else Target.Value = icv
Application.ScreenUpdating = True
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs , , , , , , , ConflictResolution:=xlOtherSessionChanges
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
Please click the * below if this helps
Bookmarks