Excel 2013 "Calculation is incomplete. Recalculate before saving?"

Anonymous
2014-01-02T22:52:06+00:00

I have a dual-boot laptop and desktop, each w/Office 2010 on Windows 7 and Office 2013 in Windows 8.1 .


On both computers, in Excel 2013 [win 8.1], when I make any changes to a file dialog box with "Calculation ..." as outlined in the title of this msg appears.

If I click Yes, the box just reappears with every click.

If I click No, nothing happens and the file is not saved.

Nothing else can be done, and I need to exit the file without saving.


This occurs *after* making numerous changes to sophisticated files, so has become a major problem.


The workaround on both computers -- use the same files in Office 2010 in Windows 7, and the issue does not occur. Ever.


Currently Office 2013 is not usable due to this issue.

Please advise as to the problem, and especially the solution.


Thank you,

- Mik




Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

43 answers

Sort by: Oldest
  1. Anonymous
    2014-09-18T14:25:30+00:00

    Although helpful in the sense that it properly analyses the problem, I cannot work around it so easily, so I agree with the last line of the post: Please Fix!

    I use a simple trick that used to work like a charm to make fields that can be filled in stand out. I created a VBA function that returns true if the cell passed as argument is locked and then create a conditional formatting rule using this function to change the background color for each locked cell. Obviously I cannot easily do this with an intermediate cell.

    So again: Please Fix!

    Jan

    Lets assume A2 is the Top-Left most cell you want the conditional Formatting to be applied to, the just write in the formula "=A1<>""" or "=A1=""" 

    Then apply this to all the ranges you need e.g. $A$1,$A$3,$B$2,$B$5:$C$9 (choose them with pressed CTRL)

    And the formatting will work without custom VBA-Function.

    BTW: I found that if the workbook is open and the bug is active, that the Error when saving also comes when I try to save a different open workbook! The other workbook is having (almost) no formatting and just a few simple charts and no VBA. Then I turn the bug off again in the conditional formatting workbook (as described previously) and then I can save the normal workbook. WTF?

    I'm afraid this is an oversimplification. This will only format cells with no data. I want to highlight cells that cannot (or can, depending on my mood) be updated. Cells containing a label for example, contain a value, but should not be updated which is why I lock them.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2014-09-18T15:46:50+00:00

    I'm not convinced Excel 2013 will not support UDF calls in conditional formatting formulas, for that I would like to see a test workbook.

    UDF's are very sensitive to how they are programmed.  A badly written UDF can break the calculation train, even when just called from worksheets cells.

    Hence my question: what does the UDF look like. If you cannot share it, fair enough, but that also means we cannot troubleshoot the problem.

    Hi

    I guess this function is the one causing the problem, since it is calculated again and again without any change affecting the cells it is used in:

    Function EngStrg2Number(EngStr As String, UnitStr As String) As Double

        Dim Pos As Integer

        Dim EngFactor As Double

        Dim Prefix As String

        EngStrg2Number = 0

        While EngStrg2Number = 0 And Len(EngStr) > 0

            Pos = InStrRev(EngStr, UnitStr, -1, 1)

            If Pos > 1 Then

                Prefix = Mid(EngStr, Pos - 1, 1)

                Select Case Prefix

                   Case "P"

                        EngFactor = 1E+15

                   Case "T"

                        EngFactor = 1000000000#

                   Case "G"

                        EngFactor = 1000000000

                   Case "M"

                        EngFactor = 1000000

                   Case "k"

                        EngFactor = 1000

                   Case "d"

                        EngFactor = 0.1

                   Case "c"

                        EngFactor = 0.01

                   Case "m"

                        EngFactor = 0.001

                   Case "u"

                        EngFactor = 0.000001

                   Case "µ" 'Unicode U+00B5

                        EngFactor = 0.000001

                   Case "µ" 'Unicode U+03BC

                        EngFactor = 0.000001

                   Case "n"

                        EngFactor = 0.000000001

                   Case "p"

                        EngFactor = 0.000000000001

                   Case Else

                        EngFactor = 1

                End Select

                EngStrg2Number = Val(EngStr) * EngFactor

            Else

                EngStrg2Number = Val(EngStr) 'Error

            End If

            EngStr = Mid(EngStr, 2) 'Maybe there are characters at the start... kill them if it is really 0, it stays 0 until we killed the complete string

        Wend

    End Function

    What the function does is quite obvious: it extracts a number from a string and includes "m" (=mili=1e-3), "n" (=nano=1e-9), "k"(=kilo=1e3) ... as a factor. IT also deletes leading characters, which confuse the "Val" function and return 0.  Maybe I should rather search for a RegExpression like

    [0-9]+.?[0-9]*

    for the number and then with another regular expression for the Unit and extract the character before it... That should be a more clean way, I guess? I am also nit sure about the two Micros (Greek and Science) which may or may not be used as input, whether Excel really handles them differently?

    @Jan Z: I guess I misunderstood you. I know now what you mean. As a workaround you could make a second sheet for each sheet and there fill in your custom formula to determine whether the cell in the other sheet is locked and copy it all over the sheet and then refer with the conditional formatting to the other Sheet like:

    =Sheet1_Formating!A1=True

    Applied to $A$1:$AZ$99 in Sheet1

    and then you should have the correct effect.

    You could then also hide that sheet or even make a Macro to create such sheets and hide them...

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2014-09-18T21:46:22+00:00

    Hello Jan,

    I changed the UDF to what you suggested, and am still getting the "Calc is incomplete..." error.

    One thing to note --- if I run any vba subroutine, or refresh a pivot table, the workbook allows me to save without the error arising.

    Microsoft absolutely HAS TO FIX THIS.

    Going back to Win 7 and Excel 2010.

    Sigh.

    Thanks anyway.

    [Seriously!]

     - Mike

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2014-09-19T06:48:11+00:00

    Pity! I'll report this to MSFT.

    Was this answer helpful?

    0 comments No comments
  5. Anonymous
    2014-09-20T07:25:02+00:00

    I'm glad to have found this thread, because I'm experiencing exactly the same issue. I've made a custom function to check if a cell has a background color:

    Public Function HasColor(Target As Range) As Boolean

        If Target.Interior.Pattern = xlPatternNone Then

           HasColor = False

        Else

           HasColor = True

        End If

    End Function

    Then I use this function in a conditional formatting rule: 

    =AND(NOT(HasColor(A1));LEFT(A1;1)="a")

    If the cell starts with an 'a' and the user hasn't colored the cell manually then the rule will apply a color to it. This way I want to give manual formatting priority above conditional formatting.

    I also tried two rules of which the first one checks whether the cell has a background color (HasColor(A1)) and if so, the conditional formatting should stop (I checked the checkbox). This doesn't work either.

    Now I'm getting the same "Calculation incomplete" message as the previous posters. It's annoying but at least now I know it's a bug in Excel and not a fault of my own :-)

    Was this answer helpful?

    0 comments No comments