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

Forumthread: Leerzeilen löschen

Leerzeilen löschen
07.09.2006 09:29:07
Holger
Hallo,
in den Blättern der Register 3 bis 8 habe ich einige nicht ausgefüllte Zeilen, die ich über folgenden Befehl löschen möchte:
'Sub Leerzeilen_Löschen
For k = 3 To 8
Sheets(k).Select
On Error Resume Next
Columns(3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Next k
Auf jedem Blatt habe ich aber die Zeilen 1 bis 5 für Überschriften vorgesehen, wobei die Zellen A1:S2 und A3:S5 verbunden sind. Mit obigem Befehl werden auch diese Zeilen gelöscht, obwohl in den verbundenen Zellen eine Überschrift steht.
Wie kann ich das Problem beheben? Die Zeilen 1 bis 5 sollen NIE gelöscht werden.
Gruss, Holger
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeilen löschen
07.09.2006 10:09:56
Harald
Hallo Hoger,
hier eine Möglichkeit.

Sub test()
Dim k As Integer, Lrow As Long, i As Long
For k = 1 To 3
'On Error Resume Next
With Sheets(k)
Lrow = .Cells.SpecialCells(xlCellTypeLastCell).Row
For i = Lrow To 6 Step -1
If .Cells(i, 3) = "" Then Rows(i).Delete
Next i
End With
Next k
End Sub

Gruss Harald
Anzeige
AW: Leerzeilen löschen
07.09.2006 10:25:31
Holger
Hallo,,
danke für den Tipp. Das Makro funzt, dauert nur ein wenig. Komischerweise sagt das Makro mir, dass die letzte beschriebene Zeile die Zeile 246 ist (richtig wäre Zeile 52). Ist auch nicht zu ändern, obwohl in den Zeilen nix drinsteht und ich die letzten 5000 Zeilen einfach mal lösche.
Deswegen lasse ich die Frage noch mal offen. Vielleicht gibt es ja noch eine elegantere Möglichkeit, wo das Makro schneller ist.
Gruss, Holger
Anzeige
AW: Leerzeilen löschen
07.09.2006 10:43:23
Harald
Hi,
das Problem an SpecialCells(xlCellTypeLastCell)ist, dass es auch Zellen mitzählt in denen irgendwann mal was stattgefunden hat (Formatierung, etc.)
Lrow = cells(rows.count, 1).end(xlup).row sucht die letzte gefüllte Zelle, ist aber auf eine Spalte (hier die 1 also A) beschränkt.
besser:
Lrow = .usedrange.SpecialCells(xlCellTypeLastCell).Row
Den Code kann man zusätzlich beschleunigen mit
with application
.enableevents = false
.screenupdating = false
end with
zu Codebeginn und am Ende wieder auf true setzen.
Gruss Harald
Anzeige
AW: Leerzeilen löschen
07.09.2006 11:03:52
Holger
Whow, bin begeistert. Habe es noch nicht probiert, gehe aber davon aus, dass es funzt. Spitze und herzlichen Dank! Habe dazu gelernt!
Gruss, Holger
gern geschehen owT
07.09.2006 11:08:04
Harald
Gruss Harald
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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