title: Excel still recalculates when hiding a row despite CalculationManual
body: <p>Excuse me if duplicating, but couldn't find anything in regards to my problem on the internet.</p>
  
  <p>So I have:</p>
  
  <pre><code>Private Sub Worksheet_Change(ByVal Target As Range)
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
  </code></pre>
  
  <p>Then somewhere down the script there is</p>
  
  <pre><code>For Each sheet In sheets
      If sheet.Cells(i, ColBrand).Rows.Hidden Then
          sheet.Cells(i, ColBrand).EntireRow.Hidden = False
      End If
  Next
  </code></pre>
  
  <p>, where ColBrand is just a column number defined as a constant integer in the beginning.</p>
  
  <p>And so it goes through an array of worksheets hiding rows where necessarity doing its job just fine.</p>
  
  <p>Problem is, despite CalculationManual, "calculating: xx%" still pops up in a status bar occasionally. Which, alongside with the speed of execution, leads me to thinking Excel recalculates the entire Worksheet (possibly Workbook) after hiding each row. Which is sad.</p>
  
  <p>Any ideas?</p>
  
  <p>Thank you!</p>
  
  <hr>
  
  <p>Now I'm thinking, could it be because I have a couple of VBA written Application.Volatile functions on one of the Worksheets?</p>
  
  <hr>
  
  <p>I do have this function, which gets called under a condition, which triggers WorkSheet_change event. If this is of any help</p>
  
  <pre><code>Function get_rand(floor As Long, ceiling As Long, exceptions() As Long)
  
  Dim rand As Long, _
      position As Variant
  
  If UBound(exceptions) - LBound(exceptions) + 1 &gt;= 999999 Then
      get_rand = "error"
  Else
      Do Until IsError(position)
          rand = CLng(((ceiling - floor + 1) * Rnd() + floor))
          position = Application.Match(rand, exceptions, False)
          get_rand = rand
      Loop
  End If
  
  End Function
  </code></pre>
  
  <hr>
  
  <p>Oh btw the code above interacts with sheets which have WorkSheet_Change routines themselves. Target.Adress 'es of these do partly intersect but get neither changed nor updated by the code above. Could it be the cause?</p>