title: Prevent EventChange Sub running unexpectedly
body: <p>Advice would be gratefully appreciated.  I am developing a spreadsheet using Excel 2016/Windows.  </p>
  
  <p>I have written 4 eventchange subroutines and all work well.  The VBA Code for a worksheet checks for 4 events.  Event 1, 2 and 3 enter today's date in a cell if data is entered in another cell (code not included below)</p>
  
  <p>Code for EventChange works fine, but sometimes works when not expected to! </p>
  
  <p>EventChange4 moves a value from one cell to another if another cell contains the text in Column J is "THIS Month – Payment Due" or "Issued But Not Paid.  The second part of this eventchange4 moves a zero value to 2 cells if the data in column j contains text "not going ahead"</p>
  
  <p>I am new to VBA.  The problem is that eventchange4 runs for no apparent reason, e.g. copying a cell value in column H down to another cell in column h.   How can I modify the code such that that eventchange4 only runs when the data in Column J Changes???  All advice gratefully accepted!!!! </p>
  
  <pre><code>Private Sub Worksheet_Change(ByVal Target As Range)
  Call EventChange_1(Target) 
  Call EventChange_2(Target)
  Call EventChange_3(Target)
  Call EventChange_4(Target)
  End Sub
  Sub EventChange_1(ByVal Target As Range)
  'Update on 11/11/2019 -If data changes in column L, insert
  'today's date into column M
  
  End Sub
  Sub EventChange_2(ByVal Target As Range)
  'Update  on 15/01/2020 -If data changes in column P, insert today's date
  'into next Column Q
  
  End Sub
  Sub EventChange_3(ByVal Target As Range)
  'Update on 15/01/2020 -If data changes in column R, insert today's date
  'into next Column S
  
  End Sub
  
  Sub EventChange_4(ByVal Target As Range)
      On Error Resume Next
      Application.EnableEvents = False
  ' this works !
  
      If Target.Column = 10 And (Target.Value = "THIS Month – Payment Due" Or Target.Value = "Issued But Not Paid") Then
          Range("K" &amp; Target.Row).Value = Range("I" &amp; Target.Row).Value
          Range("I" &amp; Target.Row).Clear
          MsgBox "Moved Commission Due to Month Paid"
      End If
      If Target.Column = 10 And (Target.Value = "Not Going Ahead") Then
          Range("I" &amp; Target.Row).Value = 0
          Range("K" &amp; Target.Row).Value = 0
          MsgBox "Moved ZERO to Initial Commisson and Month Paid"
      End If
      Application.EnableEvents = True
  End Sub
  </code></pre>