Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
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

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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige