1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| Public Type Initialization
ScreenUpdating As Boolean
Calculation As XlCalculation
count As Integer
End Type
Global initialstate As Initialization
Sub InitState(ByVal SetScreenUpdating As Boolean, ByVal SetCalculation As XlCalculation, _
Optional ByVal SetFilter As Boolean = False, Optional ByVal SetInteractive As Boolean = True)
If ActiveSheet Is Nothing Then Err.Raise Error.No_Workbook
If initialstate.count >= 0 Then
initialstate.ScreenUpdating = Application.ScreenUpdating
initialstate.Calculation = Application.Calculation
End If
initialstate.count = initialstate.count + 1
Application.ScreenUpdating = SetScreenUpdating
Application.Calculation = SetCalculation
Application.CutCopyMode = False
Application.Interactive = SetInteractive
If TypeOf ActiveSheet Is Worksheet Then If SetFilter = False Then ActiveSheet.AutoFilterMode = False
End Sub
Sub ResetInitialState(Optional ByVal SetFilter As Boolean = False)
initialstate.count = initialstate.count - 1
If initialstate.count = 0 Then
Application.ScreenUpdating = initialstate.ScreenUpdating
Application.Calculation = initialstate.Calculation
End If
Application.CutCopyMode = False
Application.Interactive = True
Application.DisplayAlerts = True
If TypeOf ActiveSheet Is Worksheet Then If SetFilter = False Then ActiveSheet.AutoFilterMode = False
On Error GoTo Fin
AppActivate Application.Caption
Fin:
End Sub |
Partager