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

Löschen leere Zeile ab bestimmter Zeile

Löschen leere Zeile ab bestimmter Zeile
09.01.2003 13:07:15
Sebastian
Hi,

hatte von markus (DANKE!) diesen Code bekommen:
Private Sub Worksheet_Activate()

Range("A1").Select

lastrow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = lastrow To 1 Step -1
If Application.WorksheetFunction.CountA(Rows(r)) = 0 _
Then Rows(r).Delete
Next r

End Sub

Dieser löscht dummerweise auch die leeren Zeilen über Zeile 43. Da soll da Makro nämlich erst beginnen. Und dann auch nur die Zeilen löschen, deren Inhalt leer ist und die einen Rahmen haben in Spalte A-L.

Wäre super, wenn jemand noch Ergänzungen hätte.

Danke im Voraus.
Sebastian

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

Betreff
Datum
Anwender
Anzeige
Re: Löschen leere Zeile ab bestimmter Zeile
09.01.2003 13:16:59
Klaus Kunkler
Hallo Sebastian,
ungetestet und aus der Hüfte, den Schleifendurchgang r begrenzen auf 43

Private Sub Worksheet_Activate()

Range("A1").Select

lastrow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = lastrow To 43 Step -1
If Application.WorksheetFunction.CountA(Rows(r)) = 0 _
Then Rows(r).Delete
Next r

End Sub

Gruss Klaus



Super, vielen Dank!!! und...
09.01.2003 13:24:55
Sebastian
das wars schon. Aber den Code versteh ich semantisch immernoch nicht so richtig.
Kannst du mir für eine Erklärung vielleicht hinter jede Zeile kurz schreiben, was da passiert...?

Danke.

Anzeige
Re: Super, vielen Dank!!! und...
09.01.2003 13:47:41
Klaus Kunkler
Hallo Sebastian,
gerne aber halt nur auf die schnelle:
Private Sub Worksheet_Activate() - Makro läuft bei Aktivierung der Datei an

Range("A1").Select - Wählt die Zelle A1 aus

lastrow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count - begründet eine Variable mit Namen lastrow und weist auf den letzten benutzen Bereich (Range) im aktiven Arbeitsblatt hin

Application.ScreenUpdating = False - schaltet den Bildschirm Refresh sollte man allerdings rauswerfen

For r = lastrow To 43 Step -1 - Beginn der Schleife r von lastrow bis nach 43, logischerweise rückwärts zählend

If Application.WorksheetFunction.CountA(Rows(r)) = 0
Then Rows(r).Delete - hier werden alles zeilen r durchlaufen und bei 0 gelöscht

Next r - Rücksprung zur Schleifenbildung


Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige