Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeile unter letzter ausgesuchter Zeile

Forumthread: Zeile unter letzter ausgesuchter Zeile

Zeile unter letzter ausgesuchter Zeile
09.08.2015 19:57:53
Uli
Moin moin,
ich hab mal eine bescheidene Frage. Ich habe eine Tabelle mit mehreren Blöcken - sagen wir mal 40. Jeder Block (mit 7 Spalten) besteht aus einer Überschrift, jede Menge Daten in den Spalten und einer Summenzeile. Danach kommt eine Leerzeile, danach der nächste Block.
Ich benötige die Blöcke 14 - 29. Alles andere muss gelöscht werden. Bis zum Beginn des 14. Blocks schaff ich es auch. Danach findet er die erste Überschrift und er hört auf zu löschen. (If zeile "fritze Müller" Entire.Row.. usw.)
Ich schaff es auch, die Blöcke zu definieren (.Range(Selection, Selection.End(xlDown)).Select. Aber ich weiß nicht, wie ich in die erste Zeile des 30. Blocks gelange, um danach wieder alles zu löschen.
Kann mir da jemand helfen?
lg
Uli

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeile unter letzter ausgesuchter Zeile
09.08.2015 20:06:03
Sepp
Hallo Uli,
in welcher Zeile beginnt der erste Block?
Ist die erste Spalte innerhalb der Blöcke durchgehend gefüllt?
Gruß Sepp

AW: Zeile unter letzter ausgesuchter Zeile
09.08.2015 21:46:18
Uli
Hallo Sepp,
der erste Block beginnt in Zeile 1 und endet in Zeile 18, der zweite beginnt in Zeile 20 und endet in Zeile 44. usw. Der besagte 30.Block beginnt in Zeile 244
lg. Uli

Anzeige
AW: Zeile unter letzter ausgesuchter Zeile
09.08.2015 22:16:31
Sepp
Hallo Uli,
Tabellenname anpassen und testen.
Sub blockLoeschen()
Dim lngR As Long, lngLast As Long, lngBlock As Long, lngCount As Long
Dim rng As Range

With Sheets("Tabelle8") 'Tabellenname -Anpassen!
  lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
  lngR = 1 'erste Blockzeile
  Do While lngR < lngLast
    lngBlock = .Cells(lngR, 1).End(xlDown).Row
    lngCount = lngCount + 1
    Select Case lngCount
      Case 14 To 29 'Blöcke die nicht gelöscht werden!
      Case Else
        If rng Is Nothing Then
          Set rng = .Range(.Cells(lngR, 1), .Cells(lngBlock + 1, 1))
        Else
          Set rng = Union(rng, .Range(.Cells(lngR, 1), .Cells(lngBlock + 1, 1)))
        End If
    End Select
    lngR = lngBlock + 2
  Loop
End With

If Not rng Is Nothing Then rng.EntireRow.Delete

End Sub


Gruß Sepp

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige