Wie kann ich jede x-te Zeile einer Exceltabelle anzeigen lassen?

8 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Kick and rush kann man das in VBA machen. Nicht schön aber selten ;)

Sub Verstecken()
Dim letztezeile As Variant
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
 Rows("2:20000").EntireRow.Hidden = True
 i = 61
 Do
 
 Rows(i).EntireRow.Hidden = False
 i = i + 60
 If i > letztezeile Then Exit Sub
 
 Loop

End Sub
Iamiam  24.06.2014, 00:08

DH!
Nur würde ich letztezeile As Integer klassifizieren und mit i = 1 oder 2 anfangen.

0

quick und dirty in VBA. (Der Code ist nicht schön, aber sollte funktionieren)

Sub Makro1()

Dim letztezeile, von, bis, ende As Integer

letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Debug.Print letztezeile

ende = Round(letztezeile / 60, 0)

von = 1
bis = 59

For i = 1 To ende
    Rows(von & ":" & bis).Select
    Selection.EntireRow.Hidden = True
    
    von = von + 60
    bis = bis + 60
    
Next i

End Sub

Eine Möglichkeit wäre eine Hilfsspalte.
Schreib z.B. in Z1:
=Rest(=REST(ZEILE();60)=0
und kopiere das runter bis zum Ende Deiner Tabelle.
Dann steht in Z60, Z120, Z180 usw. immer WARH und in den anderen Zellen FALSCH.
Jetzt kannst Du den gesamten Bereich nach Spalte Z und dem Kriterium WAHR filtern.
Falls Deine Daten erst in Z.B. Zeile 5 beginnen, ziehst Du 5 ab:
=REST(ZEILE()-5;60)=0

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
Oubyi, UserMod Light  23.06.2014, 15:11

Ok, dann zeige ich meine VBA-Version "der Vollständigkeit halber" ㋛ auch noch:

Sub Filter60()
Dim Zelle As Range
Application.ScreenUpdating = False
On Error GoTo ErrorHandler
UsedRange.EntireRow.Hidden = True

For Each Zelle In Range("A1:A" & UsedRange.Rows.Count)
    If Zelle.Row Mod 60 = 0 Then _
    Zelle.EntireRow.Hidden = False
Next Zelle

ErrorHandler:
Application.ScreenUpdating = True

End Sub
0
Oubyi, UserMod Light  23.06.2014, 16:46
SORRY,

sehe gerade bei der Formel ist mir ein Kopierfehler unterlaufen.
Es soll natürlich heißen;

=REST(ZEILE();60)=0

Die zweite Formel ist aber richtig.

0

Hilfsspalte anlegen:

=WENN(GANZZAHL(ZEILE(A1)/60)=ZEILE(A1)/60;1;"")

dann nach nicht 1 filtern und den Rest löschen.