title: Figuring Out the Multiple Worksheet Change Function
body: <p>I've read through a bunch of similar questions, but I'm honestly not quite understanding the solution.  I've changed the code, and essentially seem to have broken it even more.</p>
  <p>Expectation: When the data in the E column is changed, the L and M columns will erase themselves.  Additionally, if the F column = &quot;DFW&quot; then it will copy/paste the row to the DFW sheet, and then delete and move up the original row from Sheet1.</p>
  <p>Current Result: Nothing happening.  Before I added the If Nots (which were suggested in previous posts), I would get the functions to work once, but it would have a weird hangtime but work once.  After that, I'd have to restart the spreadsheet to get everything to function again.</p>
  <p><strong>Bonus</strong>: If there is also a way to auto sort based on column N (oldest to newest) and then sub sort based on column A (A to Z). Essentially organize by date, and then those entries organized alphabetically.</p>
  <p>Thanks in advance for any help!</p>
  <pre><code>Sub Worksheet_Change(ByVal Target As Range)
  Dim tbl As ListObject
  Dim i As Long
  '   Exit if more than one cell updated
  '    If Target.CountLarge &gt; 1 Then Exit Sub
  '   Check to see if row &gt; 1 and value is &quot;Yes&quot;
  '    If (Target.Row &gt; 2) And (Target.Value = &quot;DFW&quot;) Then
  If Not Intersect(Target, Range(&quot;F:F&quot;)) Is Nothing Then
      If Target.Value = &quot;DFW&quot; Then
  '       Set tbl to new table
          Set tbl = Sheets(&quot;DFW&quot;).ListObjects(&quot;Tasks7835&quot;)
  '       Add row
          tbl.ListRows.Add , 1
  '       set i to rowcount of table
          i = tbl.ListRows.Count
  '       copy values
          tbl.DataBodyRange(i, 1).Resize(1, 20).Value = Range(&quot;A&quot; &amp; Target.Row).Resize(1, 20).Value
          Application.EnableEvents = False
  '       Delete old row
          Target.EntireRow.Delete Shift:=xlUp
          Application.EnableEvents = True
          Exit Sub
  End If
  '    If Target.Cells.Count &gt; 1 Then Exit Sub
  
  '    If Intersect(Target, Range(&quot;E:E&quot;)) Is Nothing Then Exit Sub
  If Not Intersect(Target, Range(&quot;E:E&quot;)) Is Nothing Then
      Application.EnableEvents = False
      If Target = vbNullString Then
          Target.Offset(0, 7) = vbNullString
          Target.Offset(0, 8) = vbNullString
      Else
          Target.Offset(0, 7) = &quot;&quot;
          Target.Offset(0, 8) = &quot;&quot;
  End If
  
  On Error GoTo 0
  
  End Sub
  </code></pre>