View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Alan Alan is offline
external usenet poster
 
Posts: 188
Default Reverting User Session to Automatic Calculation


Hi All,

I have a user model that includes code to switch the user session to
Manual Calculation during use.

I am using two event procedures at the Workbook level to ensure that
this is still the case before the user saves the workbook (for the
next user who might disable macros, but still won't want automatic
calcs on):

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)

With Application
.Calculation = xlManual
.CalculateBeforeSave = False
End With

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

With Application
.Calculation = xlManual
.CalculateBeforeSave = True
End With

End Sub


Problem:

This leaves the user session set to manual calculation. If they close
down Excel, and re-open then it resets to automatic calculation, but
if they had two models open including this one, then the manual
calculation setting endures through the session.

I next tried making it manual before save (as above), but resetting to
automatic before close.

However, contrary to what I had expected, Excel appears to close
first, and then save (?)

Is there any other way that I can make the model save without
calculating first, but then revert to automatic calculation? I guess
that I need an event After Save, but the only candidate seems to be
the Close event, which *appears* to occur before saving if I am right.

Any suggestions are most welcome.

Thanks,

Alan.