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

spezielle Zeilenkürzung

spezielle Zeilenkürzung
12.10.2007 10:20:03
CharlyBraun
Ich steh mal wieder voll an: Bitte, vielleicht weis wer eine Lösung:
Bin bei meiner Reiseabrechnung, wobei ich hin und wieder eine Tabelle kürzen möchte.
Dim iRow As Long
For iRow = 190 To 20 Step -1
If IsEmpty(Cells(iRow, 2)) Then
Rows(iRow).Delete
End If
Next
Range("A20").Select
ActiveCell.CurrentRegion.Select
Selection.Name = "Database"
dauerte zu lange und brachte bei schwachen Rechnern voll Probleme.
'Range("A19:A210").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
birgt das Problem in sich, dass auch Zeilen oberhalb des letzten Eintrages in jener Spalte gelöscht werden.
Das darf nicht sein!
Range("A236").End(xlUp).Offset(1, 0).Select
bringt mich wenigstens zum letzten Eintrag dieser Spalte.
Ab was nun, damit ich alles unterhalb des letzten Eintrages weg bringe?
Habe das schon probiert, jedoch
stehe ich wieder vor dem Problem schwacher Rechner!
Range("BI236").End(xlUp).Offset(1, 0).Select
Dim L As Long
Dim ZL As Long
ZL = 200
ZL = ActiveSheet.UsedRange.Rows.Count
For L = 1 To ZL
If Len(ActiveCell.Value) = 0 _
Then ActiveCell.EntireRow.Delete _
Else ActiveCell.Offset(1, 0).Select
Next L
Vielleicht weis mir jemand einen Rad, damit schwache Rechner auch mit diesem Programm leben können.
Vielen Dank im voraus.
charlybraun

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: spezielle Zeilenkürzung
12.10.2007 14:40:00
Niels
Hi charlybraun,
das es auf schwachen Rechnern nicht richtig leuft liegt an der Select Anweisung.
Wenn ich Dich richtig verstanden habe, möchtest du:
1. Den letzten Eintrag von Spalte B ermitteln und alle Reihen die da nach kommen löschen.
2. In Spalte B im Bereich von Reihe 20 bis Reihe(Spalte B letzten Eintrag) leere Zellen löschen.
versuch mal folgenden Code:

Sub löschen()
Application.ScreenUpdating = False 'Bildschirmaktualisierung abgeschaltet
Dim iRow As Long
lz = Range("B65536").End(xlUp).Row 'letzter Eintrag in Spalte B
lze = 65536
Rows(lz + 1 & ":" & lze).Delete 'löscht alle Reihen nach LZ
For iRow = lz To 20 Step -1
If IsEmpty(Cells(iRow, 2)) Then
Rows(iRow).Delete
End If
Next
Range("A20").CurrentRegion.Name = "Database"
Application.ScreenUpdating = True 'Bildschirmaktualisierung eingeschaltet
End Sub


Gruß Niels

Anzeige
AW: spezielle Zeilenkürzung
15.10.2007 12:01:08
CharlyBraun
Vielen Dank für Deine Hilfe.
Bin aber noch an einem weiteren Problem kämpfend:
Hab 4 Spalten: Kunde1 beginn Kunde1 Ende, Kunde2 Beginn Kunde2 Ende
für die 2te Kunde möchte ich die Datenbank entsprechend verändern.
d. h.: die Bank soll erst mit EndeK1 bzw. Beginn K2 (in selber Reihe) starten und mit Kunde2 Ende aufhören
die Reihen davor sollen weg und die Reihen danach sowieso (danach ist kein Problem)
zum Davor:
ich bin mit:
Range("Ac236").End(xlUp).Offset(-1, 0).Select
Selection.EntireRow.Clear
soweit, dass ich oberhalb des ersten Eintrages (kommt sowieso nur 1mal vor, nämlich bei Beginn von K2)
mir eine leere Zeile gemacht habe und jetzt sozusagen bis zur Reihe 19 (wo die überschriften stehen) keine Daten mehr in dieser Spalte!
kann ich mit der leeren "selektierten Reihe" nach oben bis ac19 was anfangen, oder
gibt's da einen weiteren leichteren Schmäh, das Problem zu lösen?
Wär sehr dankbar für Hilfe.
lg
charlybraun
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige