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

Marco für Leerzeilen löschen

Marco für Leerzeilen löschen
04.08.2004 13:36:09
Frank
Hallo
Ich habe eine Exceltabelle, in der viele Leerzeilen sind.
Wird aus enem anderen Programm generiert.
Wie kann ich diese durch ein Makro alle löschen?
Danke im voraus

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

Betreff
Datum
Anwender
Anzeige
AW: Marco für Leerzeilen löschen
04.08.2004 14:25:22
WernerB.
Hallo Frank,
wie gefällt Dir das?

Sub LeerZeilenKiller()
Dim i As Long, laR As Long
On Error Resume Next
laR = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
On Error GoTo 0
If laR = 0 Then Exit Sub
Application.ScreenUpdating = False
For i = laR To 1 Step -1
If WorksheetFunction.CountA(Rows(i)) = 0 Then
Cells(i, 1).EntireRow.Delete
End If
Next i
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
AW: Marco für Leerzeilen löschen
05.08.2004 14:25:14
Frank
Leider löscht dieses Makro nur die oberste Zeile
Hier ein Teil Muster von so einer Tabelle
https://www.herber.de/bbs/user/9247.xls
Gruss Frank
Anzeige
AW: Marco für Leerzeilen löschen
06.08.2004 07:56:18
WernerB.
Hallo Frank,
das Makro konnte nicht funktionieren, weil Deine Leerzeilen nicht wirklich "leer" sind. Sie enthalten nämlich Zellen, in denen mehrere Leerzeichen stehen. Auch "Leer"-Zeichen sind eben Zeichen (wenn auch nicht sichtbar), und damit sind die betreffenden Zellen bzw. Zeilen eben nicht "leer".
Ich habe es jetzt so gelöst, dass sich das Makro zur Bestimmung, ob eine Zeile "leer" ist, nur am Inhalt jeder Zelle in der Spalte "B" orientiert; dazu wierden die Zellen in der Spalte "B" mit dem Makro vorab von überflüssigen Leerzeichen gesäubert (entsprechend der Tabellenblattfunktion "=GLÄTTEN()").
Dabei werden dann allerdings auch die führenden und abschließenden Leerzeichen bei einigen Texten in der Spalte "B" entfernt; dies musst Du dabei leider in Kauf nehmen.
So sollte es jetzt – mit den o. a. Einschränkungen - klappen:

Sub LeerZeilenKiller()
Dim i As Long, laR1 As Long, laR2 As Long
Dim c As Range
Application.ScreenUpdating = False
laR1 = Cells(Rows.Count, 2).End(xlUp).Row
For Each c In Range("B1:B" & laR1)
c.Value = WorksheetFunction.Trim(c.Text)
Next c
On Error Resume Next
laR2 = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
On Error GoTo 0
If laR2 = 0 Then Exit Sub
For i = laR2 To 1 Step -1
If Cells(i, 2).Value = "" Then
Cells(i, 1).EntireRow.Delete
End If
Next i
Application.ScreenUpdating = True
End Sub

Gruß
WernerB.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige