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

Zeilen löschen

Zeilen löschen
29.06.2013 10:02:33
Walter
Hallo Excelfreunde,
Ich möchte alle Zeilen löschen, wenn in Spalte "B" nichts steht.
Habe dies Makro gefunden, wenn aber zwei oder mehr Zeilen leer sind geht es nicht.
Sub delete_empty_rows()
Dim nRow As Long
Dim nLastrow As Long
Application.ScreenUpdating = False
ActiveCell.SpecialCells(xlLastCell).Select
nLastrow = ActiveCell.Row
Cells(1, 1).Select
For nRow = 1 To nLastrow
If Cells(nRow, 1).Value = "" Then  'Zelle A in aktueller Zeile auf Inhalt überprüfen
Rows(nRow).Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Bitte um Hilfe.
Danke
Walter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen
29.06.2013 10:13:32
Hajo_Zi
Hallo Walter,
das hängt damit zusammen das Du nicht vom letzten zum ersten läufst.

und wie macht man das, bitte
29.06.2013 10:45:12
Walter
Halo Hajo,
wie macht man das bitte?
Bei VBA stehe ich echt auf dem Schlauch.
Gruß
Walter

AW: Zeilen löschen
29.06.2013 10:47:00
ransi
Hallo Walter
Beim Löschen von ganzen Zeilen oder Spalten immer hinten anfangen, sonst verschluckt sich die Zählervariable.
For nRow = nLastrow to 1 step -1
sollte klappen.
ransi

Zeilen löschen - schneller
29.06.2013 11:00:45
Erich
Hi Walter,
deine Prozedur löscht Zeile für Zeile. Damit der Bldschirm dabei nicht flackert, setzt du ScreenUpdating auf False.
Die folgende Prozedur ermittelt erst mal die zu löschenden Zeilen und löscht sie dann in einem Rutsch.
Das geht schneller, ist für Excel nur eine einzige Änderung, flackert nicht:

Sub delete_empty_rows2()
Dim nRow As Long
Dim rngDel As Range
With ActiveSheet.UsedRange
For nRow = .Row To .Row - 1 + .Rows.Count
'Zelle A in aktueller Zeile auf Inhalt überprüfen
If Cells(nRow, 1).Value = "" Then
If rngDel Is Nothing Then
Set rngDel = Cells(nRow, 1)
Else
Set rngDel = Union(rngDel, Cells(nRow, 1))
End If
End If
Next
End With
If Not rngDel Is Nothing Then rngDel.EntireRow.Delete
End Sub
Nebenbei: "Select" ist hier - wie meinstens - unnötig.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
ganz kurz
29.06.2013 11:08:11
UweD
Hallo
damit geht es auch....
Sub Leerzeilen_weg()
ActiveSheet.Columns("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Gruß UweD

AW: ganz kurz
29.06.2013 12:35:33
Walter
Allen freundlichen Helfer,
heißen Dank
Rentner Walter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige