Lob an Mac4 und ans Forum aber noch ne Frage

Bild

Betrifft: Lob an Mac4 und ans Forum aber noch ne Frage
von: Michael Engelhardt
Geschrieben am: 05.12.2003 11:15:22

Hallo Forum,

Mac4 gab mir diesen Code, der auch wunderbar funktioniert:


Private Sub Worksheet_Activate()
Dim Zelle
For Each Zelle In Range("A13:A550")
If IsError(Zelle.Value) Then
    Zelle.EntireRow.Hidden = True
Else
    Zelle.EntireRow.Hidden = False
End If
Next
End Sub


Die Ausführung dauert 2min 14s. Kann man die Zeit noch irgendwie verkürzen, oder muss ich das wegen der relativ großen Range hinnehmen?

Gruß
Michael
Bild


Betrifft: AW: Lob an Mac4 und ans Forum aber noch ne Frage
von: Mac4
Geschrieben am: 05.12.2003 11:24:42

Hi,

nimm die ScreenUpdating - Zeilen dazu:



Private Sub Worksheet_Activate()
Dim Zelle
Application.Screenupdating = False
For Each Zelle In Range("A13:A550")
If IsError(Zelle.Value) Then
    Zelle.EntireRow.Hidden = True
Else
    Zelle.EntireRow.Hidden = False
End If
Next
Application.Screenupdating = True
End Sub



Marc


Bild


Betrifft: Spitzenklasse !!!!
von: Michael Engelhardt
Geschrieben am: 05.12.2003 11:45:51

Hallo Marc,

vielen vielen Dank!!!! Du hast mir das Arbeitsleben um ein vielfacher leichter gemacht.

Danke
Michael


Bild


Betrifft: Turboversion ohne Schleife
von: Martin Beck
Geschrieben am: 05.12.2003 15:07:37

Hallo,

das Ganze geht ohne Schleife noch wesentlich schneller(ich unterstelle, daß Du Zeilen ausblenden willst, die eine Fehlermeldung als Ergebnis einer Formelberechnung enthalten):


Sub ausblenden()
    Cells.EntireRow.Hidden = False
    Cells.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Hidden = True
End Sub


Gruß
Martin Beck


Bild

Beiträge aus den Excel-Beispielen zum Thema " Datenbereich kopieren"