Ereignisabfrage endet in Endlosschleife
07.09.2004 12:07:30
Glenn
bin kurz davor mein Projekt zu beenden. Leider gibt es da diese Endlosschleife:
Wenn in Sheet1 etwas neu berechnet wird, wird in Sheet2 (Worksheet_Activate) ebenfalls ein Makro ausgeführt. Die Ergebnisse aus Sheet2 werden dann wiederum in einer Übersicht in Sheet1 dargestellt (einfacher Zellbezug).
Wenn ich manuell nach Ausführung der Makros aus Sheet2 in Sheet1 wechsle, ist alles richtig. Baue ich aber in das Sheet2-Makro "Sheet1.Activate" ein, hagelt es die Endlosschleife. Manchmal bricht er diese mit dem richtigen Ergebniss auch nach ca. 30s ab. Normal wären höchstens 2s.
Code ("DieseArbeitsmappe"):
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Application.ScreenUpdating = False
With Worksheets("Sheet1") 'hier scheint er es manchmal nicht zu aktivieren
.Activate
End With
Application.ScreenUpdating = True
End Sub
Code ("Sheet2"):
Private Sub Worksheet_Activate()
Dim Sheet1 As Worksheet, Sheet2 As Worksheet
Dim strAF As String
Dim strUR As String
Application.ScreenUpdating = False
Set Sheet1 = Workbooks(Me.Parent.Name).Worksheets("Sheet1")
Set Sheet2 = Workbooks(Me.Parent.Name).Worksheets("Sheet2")
With Sheet1
strUR = .UsedRange.EntireRow.Address(0, 0)
If .AutoFilterMode Then
strAF = .AutoFilter.Range.SpecialCells(xlCellTypeVisible).EntireRow.Address(0, 0)
Me.Range(strUR).EntireRow.Hidden = True
Me.Range(strAF).EntireRow.Hidden = False 'bricht teilweise ab und startet neu
Else
Me.Range(strUR).EntireRow.Hidden = False
End If
.Activate
End With
Application.ScreenUpdating = True
End Sub
Bin für jede Hilfe dankbar! Ich versteh's echt nicht mehr...
Beste Grüße
der glenn