Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen ausblenden dauert lange

Zeilen ausblenden dauert lange
DieterL
Hallo Excelfreunde,
ich lasse in einem Tabellenblatt über ein Makro alle Zeilen ausblenden in denen in Spalte 4 ein n steht.
Private Sub Wechsel()
Application.ScreenUpdating = False
Dim intz As Integer
Dim lzeile As Long
Cells.EntireRow.Hidden = False
lzeile = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row
For intz = lzeile To 3 Step -1
Rows(intz).Hidden = Cells(intz, 4) = "n"
Next
Application.ScreenUpdating = True
End Sub
Es sind etwa 80 Zeilen die geprüft werden müssen. Der Wechsel dauert auf einem Rechner mit
3,2 Ghz Dual Core 2 bis 3 Sekunden, auf einem Laptop mit 2,2 Ghz quälende 5 Sekunden. Das geht aber
erst nach einigen Wechseln langsamer, gleich nach dem Start der Datei funktioniert es in Echtzeit.
Hat jemand eine Idee was da schief läuft?
Danke schon mal fürs Nachdenken, DieterL

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen ausblenden dauert lange
27.09.2010 16:05:02
Rudi
Hallo,
auf einen Schlag ausblenden:
Private Sub Wechsel()
Application.ScreenUpdating = False
Dim intZ As Integer
Dim lZeile As Long
Dim rHidden As Range
Cells.EntireRow.Hidden = False
lZeile = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row
For intZ = lZeile To 3 Step -1
If Cells(intZ, 4) = "n" Then
If rHidden Is Nothing Then
Set rHidden = Cells(intZ, 4)
Else
Set rHidden = Union(rHidden, Cells(intZ, 4))
End If
End If
Next
If Not rHidden Is Nothing Then rHidden.EntireRow.Hidden = True
Application.ScreenUpdating = True
End Sub

Gruß
Rudi
Anzeige
AW: Das haut hin
27.09.2010 16:33:52
DieterL
Hallo Rudi,
das läuft prima, danke vielmals. Den Code werde ich mir erstmal verinnerlichen.
Gruß, DieterL
AW: Das haut hin
28.09.2010 09:24:33
Klaus
Hi Dieter,
bei sehr großen Bereichen noch einen Tick schneller, da komplett auf eine Zählschleife verzichtet wird.
Dafür mit einer unschönen Hilfsspalte, die aber automatisch wieder gelöscht wird.
Sub SchnellerWechsel()
Dim iCol As Integer
Dim lRow As Long
Application.ScreenUpdating = False
With ActiveSheet
iCol = .UsedRange.Columns.Count + .UsedRange.Column
lRow = .UsedRange.Rows.Count + .UsedRange.Row - 1
.Cells.EntireRow.Hidden = False
.Range(.Cells(.UsedRange.Row, iCol), Cells(lRow, iCol)).FormulaR1C1 = "=IF(RC4=""n"","""",1/ _
0)"
.Range(.Cells(.UsedRange.Row, iCol), Cells(lRow, iCol)).SpecialCells(xlCellTypeFormulas, 16) _
.EntireRow.Hidden = True
.Cells(1, iCol).EntireColumn.ClearContents
End With
Application.ScreenUpdating = True
End Sub

Anzeige

124 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige