Excel VBA - Jede Zeile ohne aktuelles Datum entfernen
Hallo an Alle,
ich habe folgendes Problem und hoffe, dass ihr mir wieder helfen könnt
Ich habe eine Tabelle1 (60 Spalten) mit einer Überschriftenzeile (Zeile1) und dann folgen ab Zeile2 etliche Zeilen mit Inhalten. Jetzt möchte ich gerne alle Zeilen löschen, wenn das Datum aus der Spalte AH nicht = heute ist (Datumsformat falls relevant wäre 05.07.2017). Anschließend speichern und schließen.
Folgender Ablauf wäre gut:
1. Datei wird geöffnet
2. Abfrage mit Löschvorgang
3. Datei speichern
4. Datei schließen
Wie mache ich das?
Vielen lieben Dank
Grüße
ich habe folgendes Problem und hoffe, dass ihr mir wieder helfen könnt
Ich habe eine Tabelle1 (60 Spalten) mit einer Überschriftenzeile (Zeile1) und dann folgen ab Zeile2 etliche Zeilen mit Inhalten. Jetzt möchte ich gerne alle Zeilen löschen, wenn das Datum aus der Spalte AH nicht = heute ist (Datumsformat falls relevant wäre 05.07.2017). Anschließend speichern und schließen.
Folgender Ablauf wäre gut:
1. Datei wird geöffnet
2. Abfrage mit Löschvorgang
3. Datei speichern
4. Datei schließen
Wie mache ich das?
Vielen lieben Dank
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 342543
Url: https://administrator.de/forum/excel-vba-jede-zeile-ohne-aktuelles-datum-entfernen-342543.html
Ausgedruckt am: 30.01.2025 um 07:01 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
mal so kurz hingeschrieben. Und diesen Code mit einer Schaltfläche verbinden und ausführen.
Gruß
mal so kurz hingeschrieben. Und diesen Code mit einer Schaltfläche verbinden und ausführen.
Sub ZeilenLöschen()
Dim ws As Worksheet
Dim rng As Range
Dim datum As Date
Dim heute As Date
Set ws = ActiveSheet
Set rng = ws.Range("AH2")
heute = DateSerial(Year(Now), Month(Now), Day(Now))
Do Until rng.Row > ws.UsedRange.Rows.Count
datum = rng.Value
If Not datum = heute Then
Set rng = rng.Offset(1, 0)
rng.Offset(-1).EntireRow.Delete xlShiftUp
Else
Set rng = rng.Offset(1, 0)
End If
Loop
End Sub
Gruß
Hallo!
Beim Löschen von Zeilen ist es sinnvoll bei der letzten Zeile zu beginnen:
Gruß Dieter
Beim Löschen von Zeilen ist es sinnvoll bei der letzten Zeile zu beginnen:
Sub test()
Dim dblDate As Date, i As Long
With ActiveSheet
dblDate = Date
For i = .Cells(.Rows.Count, "AH").End(xlUp).Row To 2 Step -1
If .Cells(i, "AH").Value <> dblDate Then
.Rows(i).Delete
End If
Next
End With
End Sub
Gruß Dieter