Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
796to800
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
796to800
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
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
Anzeige
gern geschehen owT
07.09.2006 11:08:04
Harald
Gruss Harald

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige