While I would never suggest anyone use Manual calculation in Excel, I realize that many still do. All it means is you have spreadsheet design issue that you SHOULD fix rather than cater to.
Function CalculationState() As String
Application.Volatile
Select Case Application.CalculationState
Case 0: CalculationState = "Calculating"
Case 1: CalculationState = "Done"
Case 2: CalculationState = "Pending"
End Select
End Function
Function CalculationMode() As String
Dim cMode As XlCalculation
Application.Volatile
cMode = Application.Calculation
Select Case cMode
Case xlCalculationAutomatic: CalculationMode = "Auto"
Case xlCalculationManual: CalculationMode = "Manual"
Case xlCalculationSemiautomatic: CalculationMode = "Semi-Auto"
End Select
End Function
Use like;
=CalculationState()
and
=CalculationMode()
Both are Volatile Functions and will recalculate when most action is used in Excel. IMPORTANT if you are in Manual Calculation neither will auto recalculate.
Microsoft and Microsoft Excel are registered trademarks of Microsoft Corporation. OzGrid is in no way associated with Microsoft
See also:
Free Training Course: Lesson 1 - Excel Fundamentals
See also: Index to Excel VBA Code; Index to Excel Freebies; Lesson 1 - Excel Fundamentals; Index to how to… providing a range of solutions
Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.