title: My simple MsgBox VBA halts entire spreadsheet unless i click the "ok"?
body: <p>Please bear with me as i try to elaborate as succinctly as poss:</p>
  
  <p>I have a basic trading spreadsheet that takes live prices in and if the price surpasses my target entry price a cell, say AB4, shows the text "BUY".  If I own the stock and the price drops below my target the same cell shows "SELL". Either way, the spreadsheet will also automatically send out an order to execute the trade.</p>
  
  <p>All I wanted was a msgbox to remind me to take notes whenever a signal appears.  I only need the one reminder but I do need it as i always forget.</p>
  
  <p>After reading many past posts here, this was my first attempt:</p>
  
  <pre><code>Private Sub worksheet_calculate()
   If Range("AB4").value = "BUY" Or Range("AB4").value = "SELL" Then
    MsgBox ("Record Catalyst")
   End If
  End Sub
  </code></pre>
  
  <p>Seemed to work but as soon as I clicked the "ok" the msgbox would instantly reappear.  So long as the "BUY" or "sell" text was showing the msgbox just wouldn't go away no matter the number of times i clicked it.  </p>
  
  <p>So i searched again and found a way to make the msgbox appear just once:</p>
  
  <pre><code>Private Sub worksheet_calculate()
  If ActiveSheet.Range("BV4").Text = "Triggered" Then Exit Sub
    If Range("AB4").value = "BUY" Or Range("AB4").value = "SELL" Then
     MsgBox ("Record Catalyst")
  ActiveSheet.Range("BV4") = "Triggered"
  End If
  End Sub
  </code></pre>
  
  <p>Seemed to work a charm EXCEPT if I don't click the "ok" to make the msgbox disappear my entire spreadsheet ceases to do anything (ie prices no longer update, calculations no longer perform etc)!  It just seems to wait for me to click the blasted "ok" first. This is a major problem because if I'm not around when a msgbox appears and the spreadsheet is halted then should the price for another stock in my portfolio reach its target the spreadsheet wouldn't even know let alone shoot the order out automatically.</p>
  
  <p>Why does this simple procedure stop the spreadsheet functioning and how can i solve my original "simple" msgbox problem?  I don't want to go the conditional formatting route on the spreadsheet as its already cluttered with too many conditionally formatted cells.</p>
  
  <p>Thank you gurus!</p>