Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I want to get excel to turn to manual calculation for any workbook used.
I thought I could use an add-in to create an automatic procedure with the workbook open event, in order to make it generic: Sub Workbook_Open() If Application.Calculation = xlCalculationAutomatic Then Application.Calculation = xlCalculationManual End Sub However, this seems to work only on individual workbooks since the add-in doesn't perform any action when I open a random workbook. Any ideas? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The workbook_Open event will fire only when the workbook with the code is
opened. So you could add that same kind of code to every workbook that needs it -- or you could use something called an application event. These application events run when something happens at the application level--not specific to a worksheet or workbook. You may want to try this (and all the code goes in the ThisWorkbook module): Option Explicit Private WithEvents XLApp As Excel.Application Private Sub Workbook_Open() Set XLApp = Excel.Application End Sub Private Sub XLApp_NewWorkbook(ByVal Wb As Workbook) ChangeTheCalculationMode End Sub Private Sub XLApp_WorkbookOpen(ByVal Wb As Workbook) ChangeTheCalculationMode End Sub Sub ChangeTheCalculationMode() Dim TempWkbk As Workbook If ActiveWorkbook Is Nothing Then Application.EnableEvents = False Set TempWkbk = Workbooks.Add(1) Application.EnableEvents = True End If XLApp.Calculation = xlCalculationManual XLApp.Iteration = True XLApp.MaxIterations = 9999 If TempWkbk Is Nothing Then 'do nothing Else TempWkbk.Close savechanges:=False End If End Sub johnmasvou wrote: I want to get excel to turn to manual calculation for any workbook used. I thought I could use an add-in to create an automatic procedure with the workbook open event, in order to make it generic: Sub Workbook_Open() If Application.Calculation = xlCalculationAutomatic Then Application.Calculation = xlCalculationManual End Sub However, this seems to work only on individual workbooks since the add-in doesn't perform any action when I open a random workbook. Any ideas? -- Dave Peterson |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thank you very much Dave, it works fine!
It would have taken ages to write this code myself Thanks again Ioannis "Dave Peterson" wrote: The workbook_Open event will fire only when the workbook with the code is opened. So you could add that same kind of code to every workbook that needs it -- or you could use something called an application event. These application events run when something happens at the application level--not specific to a worksheet or workbook. You may want to try this (and all the code goes in the ThisWorkbook module): Option Explicit Private WithEvents XLApp As Excel.Application Private Sub Workbook_Open() Set XLApp = Excel.Application End Sub Private Sub XLApp_NewWorkbook(ByVal Wb As Workbook) ChangeTheCalculationMode End Sub Private Sub XLApp_WorkbookOpen(ByVal Wb As Workbook) ChangeTheCalculationMode End Sub Sub ChangeTheCalculationMode() Dim TempWkbk As Workbook If ActiveWorkbook Is Nothing Then Application.EnableEvents = False Set TempWkbk = Workbooks.Add(1) Application.EnableEvents = True End If XLApp.Calculation = xlCalculationManual XLApp.Iteration = True XLApp.MaxIterations = 9999 If TempWkbk Is Nothing Then 'do nothing Else TempWkbk.Close savechanges:=False End If End Sub johnmasvou wrote: I want to get excel to turn to manual calculation for any workbook used. I thought I could use an add-in to create an automatic procedure with the workbook open event, in order to make it generic: Sub Workbook_Open() If Application.Calculation = xlCalculationAutomatic Then Application.Calculation = xlCalculationManual End Sub However, this seems to work only on individual workbooks since the add-in doesn't perform any action when I open a random workbook. Any ideas? -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
AutoCalc Worksheet in ManualCalc Workbook | Excel Programming | |||
Opening a workbook if not opened, going to it if already opened | Excel Programming | |||
Opening a workbook if not opened, going to it if already opened | Excel Programming | |||
Opening a workbook if not opened, going to it if already opened | Excel Programming | |||
How to see if the opened workbook is opened by another user ? | Excel Programming |