Вам необходимо отключить обработку событий перед внесением изменений в значения на рабочем листе.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
On Error GoTo out_here
Application.EnableEvents = False
With ListObjects("Table1").Range
.Sort key1:=.Cells(1), order1:=xlAscending, _
Header:=xlYes
End With
End If
out_here:
Application.EnableEvents = True
End Sub
Это все, что вам нужно для выполнения поставленных задач.Если вы хотите разделить код сортировки на три части, это должно быть просто, если вы сохраняете отключение обработки событий.