Bereichanfang/-Ende bestimmen und löschen
31.05.2008 15:28:00
Peter
Ich habe eine umfangreiche Tabelle der den Bereich Daten1 enthält, aus welchem ich verschiedene Zeilen löschen muss, und zwar diejenigen, bei denen in der Spalte AA Löschen steht.
Zu diesem Zweck trage ich in Spalte Z im ganzen Datenbereich eine fortlaufende Nummer ein und sortiere dann nach Spalte AA. Anschliessend lösche ich alle Zeilen mit der Bezeichnung Löschen in Spalte AA und dann sortiere ich die Daten wieder anhand der fortlaufenden Nummer.
Um den Makro etwas zu beschleunigen, möchte ich nach dem Sortieren nicht Zeile für Zeile löschen, da ja alle Zeilen mit dem Eintrag Löschen in Spalte AA aufeinander folgen.
Wie kann ich den ersten und den letzten Eintrag mit Löschen in Spalte AA bestimmen und dann alle Zeilen auf einmal löschen?
Danke für Hinweise.
Gruss, Peter
Sub Inventar_Finish()
With Worksheets("Inventar")
Selection.AutoFilter Field:=1
Call DurchNummerieren
Range(Daten1).Sort Key1:=.Range("AA7"), Order1:=xlAscending, Header:=xlYes
Call Zeilen_entfernen
Range(Daten1)..Sort Key1:=.Range("Z7"), Order1:=xlAscending, Header:=xlYes
End With
End Sub
Sub DurchNummerieren()
'Bereich durchnummerieren in Spalte Z (entspricht vor Löschen von Zeilen der Zeilennummer)
Dim c As Variant
Dim x
x = 7
For Each c In Range("Daten1")
If c.Column = 26 Then c.Value = x: x = x + 1
Next
End Sub
Sub Zeilen_entfernen()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("AA65536").End(xlUp).Row To 1 Step -1
If Cells(i, 27).Value = "Löschen" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub