GetMoreSpeed
27.07.2007 23:41:29
Peter
"Vor langer Zeit" habe ich aus dem Forum nachfolgender Code erhalten, den ich bei längeren Codes aufgerufen habe.
Nun habe ich ihn wieder in einem "kleineren Code" aufgerufen, mit dem Ergebnis, dass nach dem Ablaufen die Sanduhr ewig weiterläuft.
Kann mir jemand sagen, weshalb? Mittels was wird eigentlich Application Modus wieder auf 0 gestellt (damit dann die else Bedingungen ausgeführt werden)?
Danke, Peter
Sub GetMoreSpeed(Optional ByVal Modus As Integer = 1)
Static lngCalc As Long
With Application
If Modus = 1 Then
lngCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = -4135
.Cursor = xlWait
Else
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = IIf(lngCalc > 0, lngCalc, -4105)
.Cursor = xlDefault
End If
End With
End Sub
Diesen Code habe ich im nachstehenden Code aufgerufen.
Sub Filter_Switch()
Dim strASN As String
strASN = ActiveSheet.Name
GetMoreSpeed
With Worksheets("Inventar")
.Select
If .AutoFilterMode Then
If .FilterMode Then
.ShowAllData
Else
.Rows(1).AutoFilter Field:=1, Criteria1:="="
End If
End If
End With
Worksheets(strASN).Activate
End Sub