title: VBA Macro Excecutes more than once
body: <p>It's the first time I'm trying some VBA code, so it might be a very noob mistake but I just can't see it, this is my code:</p>
  
  <pre><code>Private Sub Worksheet_Change(ByVal Target As Range)
          If InRange(ActiveCell, Range("N4:N33")) Then
              If InStr(1, ActiveCell.Text, "EFECTIVO") &gt; 0 Then
                  If (Not IsEmpty(ActiveCell.Offset(0, -1))) Then
                      If (ActiveCell.Offset(0, -1).Value &gt; 0) Then
                          Cancel = True
                          Call RestaEfectivo
                          Range("F4").Select
                      End If
                  End If
              End If
          End If
  End Sub
  Function InRange(Range1 As Range, Range2 As Range) As Boolean
      InRange = Not (Application.Intersect(Range1, Range2) Is Nothing)
  End Function
  
  Sub RestaEfectivo()
      Range("F4").Value = Range("F4").Value - ActiveCell.Offset(0, -1).Value
  End Sub
  </code></pre>
  
  <p>The idea is that I have a dropdown list on my cells N4 to N33, whenever I choose the option "EFECTIVO" it should take the value to the left of the ActiveCell (N#) and substract its value from the F4 cell. In essence F4 = F4 - N#.</p>
  
  <p>The code does what it's supposed to do, however, it appears to execute 50 times? The original value of my F4 cell is 230, once I execute the code it turns into -20</p>
  
  <p>Any idea where I messed up or if I'm missing some code, validation, etc?</p>
  
  <p>As I said, I'm new to VBA for Excel Macros, so don't worry about pointing out noob mistakes.</p>