Jim

If you change your change event to
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo errhand
  Application.EnableEvents = False
  Range("D2", Range("D2").End(xlDown)).Copy Destination:=Range("A2")

  Columns(1).Sort Key1:=Range("A1"), Order1:=xlAscending, _
    Header:=xlGuess, OrderCustom:=1, _
    MatchCase:=False, Orientation:=xlTopToBottom
errhand:
  Application.EnableEvents = True
End Sub
then changes made to column D will be reflected in column A.

Your form only has one option - add a new entry.

Do you want to have 2 different forms - one for add new entry, second for amend existing entry? Or do you want to have one form with 2 different options - add new or update?

rylo