Gibt es die Möglichkeit, sämtliche Zeilen eines Arbeitsblattes (mit mehr als 6000 Zeilen) zu löschen, welche in der Zelle "A" ein Datum im Jahr 2003 enthalten?
Herzlichen Dank im voraus.
John
Gibt es die Möglichkeit, sämtliche Zeilen eines Arbeitsblattes (mit mehr als 6000 Zeilen) zu löschen, welche in der Zelle "A" ein Datum im Jahr 2003 enthalten?
Herzlichen Dank im voraus.
John
das geht. Mit Year(Zelle) kannst du prüfen, ob das Datum in das entsprechende Jahr fällt. Mit Rows(Nummer).Delete wird die Zeile gelöscht. Reicht das als Hinweis oder brauchst du den kompletten Code? Falls ja, können in Spalte A andere Werte als Daten vorkommen?
Gruß
Peter
so kann es gehen:
Sub test()
Dim zl As Long
zl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = zl To 1 Step -1
If Year(Cells(i, 1)) = 2003 Then
Cells(i, 1).EntireRow.Delete shift:=xlUp
End If
Next
End Sub
so kann es gehen:
Sub test()
Dim zl As Long
zl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = zl To 1 Step -1
If Year(Cells(i, 1)) = 2003 Then
Cells(i, 1).EntireRow.Delete shift:=xlUp
End If
Next
End Sub
Da ich kein Makro-Spezialist bin, würde ich gerne den kompletten Code haben. Die Zellen der Spalte A beinhalten entweder Daten oder nichts.
Gruss
John
war mir schon klar. ;-) Fürs Löschen reicht übrigens :Rows(i).Delete
Gruß
Peter
Danke für Ihre prompte Hilfe: es funktionniert fast problemlos. Nach der Ausführung erscheint:
>> Laufzeitfehler '13': Typen unverträglich <<
für den Befehl "If Year(Cells(i, 1)) = 2003 Then". Kann mir eine(r) mitteilen, was diesen "Fehler" verursacht und wie ich ihn beseitigen könnte?
Danke und Gruss
John
steht vielleicht in Zeile 1 eine Überschrift? Dann muss der Schleifenzähler geändert werden auf:
For i = zl To 2 Step -1
Gruß
Peter