Microsoft Excel

Herbers Excel/VBA-Archiv

Bestimmte Zeilen Ausblenden | Herbers Excel-Forum


Betrifft: Bestimmte Zeilen Ausblenden von: Janosch
Geschrieben am: 02.02.2012 17:13:43

Halli Hallo,

ich habe folgendes Problem:

Eine Tabelle (A1-J172) in die Daten eingetragen werden. Dabei gibt es verschiedene Abschnitte deren Beginn jeweils mit einer farblich hinterlegten Zeile visualisiert ist. Also 10 Spalten, von denen jeweils 2 zusammen gehören.

Schwer zu erklären...

Es geht darum, dass ich gerne die Zeilen ausblenden würde, die weder Farbe noch Formel noch Text enthalten.

Hier im Forum bin ich auf folgenden Code gestossen:

Sub Farbige_Zeilen_löschen()
On Error Resume Next
Application.ScreenUpdating = False
For i = 1 To 1000
    If Range(Cells(i, 1), Cells(i, 256)).Interior.ColorIndex = -4142 Then
        Rows(i).Hidden = True
    End If
Next i
Application.ScreenUpdating = True
End Sub
Kommt mir entgegen, da nicht unbedingt immer alle Zellen innerhalb einer Zeile Farben beinhalten und diese Zeilen dennoch Hidden = False sein sollen.

Darüber hinaus hätte ich aber nun gern auch noch all die Zeilen Sichtbar, die Text oder Formeln enthalten. DARÜBER hinaus sollten 2 leere Zeilen immer angezeigt werden (um entsprechend Einträge machen zu können).

Ich hab mit ein wenig gebastel dann folgendes zusammengefuscht:

'

Sub Zeilen_ausblenden()
'On Error Resume Next
'Application.ScreenUpdating = False
'For i = 1 To 1000
'    If Range(Cells(i, 1), Cells(i, 256)).Interior.ColorIndex = -4142 And IsEmpty(Cells(i, 1))   _
_
And IsEmpty(Cells(i + 1, 1)) Then
'        Rows(i).Hidden = True
'    End If
'Next i

'Application.ScreenUpdating = True
'End Sub

Allerdings werden mir da nur die Zeilen angezeigt, die in der ersten Spalte einen Eintrag haben. Ich hätte aber gern sämtliche Zellen überprüft und weiß nicht, wie ich das hinbekomme. Und langsam geht mir die Geduld und die Ideen aus.

Hat hier vielleicht jemand eine Idee?

  

Betrifft: AW: Bestimmte Zeilen Ausblenden von: Christian
Geschrieben am: 02.02.2012 18:58:59

Hallo Janosch,
du kannst natürlich in einer zweiten Schleife alle Zellen der jeweiligen Zeile abklappern oder einfach die Anzahl der Einträge in dieser Zeile prüfen (entspr. ANZAHL2) - in VBA für die Spalten A-J zB so:

'...
For i = 1 To 1000
    Rows(i).Hidden = (Application.CountA(Cells(i, 1).Resize(, 10)) = 0)
Next
'....

Gruß
Christian


  

Betrifft: AW: Bestimmte Zeilen Ausblenden von: Janosch
Geschrieben am: 06.02.2012 16:33:24

Zu erst vielen Dank Christian, und dann weiter im Programm. :-)

ich hab das jetzt folgender Maßen umgesetzt:

Public Sub Zeilen_ausblenden()
On Error Resume Next
Application.ScreenUpdating = False
For i = 1 To 1000
    Rows(i).Hidden = (Application.CountA(Cells(i, 1).Resize(, 10)) = 0) And (Application.CountA( _
Cells(i - 1, 1).Resize(, 10)) = 0)
        If (Application.CountA(Cells(i, 1).Resize(, 10)) > 0) Then Rows(i + 1).Hidden = False
Next i
Application.ScreenUpdating = True
End Sub

Gibt 's da noch Verbesserungsvorschläge?


Beiträge aus den Excel-Beispielen zum Thema "Bestimmte Zeilen Ausblenden"