Excel VBA Code mit Datum löschen

Hallo und guten Tag.
Ich möchte mit einen VBA Code in einer Tabelle anhand vom Datum Heute() minus 60 Tage alle betroffenen Datumswerte in Spalte „E“ löschen. In meinem Code-Beispiel ist es möglich einen Wert zu löschen, ein Datum hingegen nicht. Hätte hier jemand eine Lösung für mich parat.

Sub zeilenloeschen()
Dim i As Long
Dim letzteZeile As Long
Dim suchBereich As Range
Dim gefunden As Range
Dim ersterTreffer As String
Dim suchWert As String
suchWert = "122" 'hier kommt dein Suchwert rein
With ThisWorkbook.Sheets("Tabelle1")
    letzteZeile = .Range("A" & Rows.Count).End(xlUp).Row
    Set suchBereich = .Range("E2:E" & letzteZeile)
    Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
    If Not gefunden Is Nothing Then
        ersterTreffer = gefunden.Address
        Do
            gefunden.Activate
            ActiveCell.EntireRow.Delete shift:=xlUp
            Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
        Loop While Not gefunden Is Nothing
    End If
End With

End Sub
vorformatierten Text mit 4 Leerzeichen einrücken

hi,

was nimmst du denn als Suchwert?

war 122 der Test für den 1.5.1900?

grüße
lipi

Hallo, der Suchwert bezieht sich auf das Datum in der Spalte „E“. Es ist als „Datum kurz“ formatiert. Mein Ziel ist es, Zeilen zu löschen die älter 60 Tage ab „Heute()“ sind. Damit würden dann automatisch ältere Zeileninhalte gelöscht werden. Die Zahlen in Spalte „E“ waren nur ein Versuch. Gruß

Moin,

Suche nach Datum ist immer heikel, lies mal hier nach.

Gruß
Ralf

<falscher Beitrag, gelöscht>

O. k. konnte ebenfalls nichts zum „Datum“ ableiten.

Nur, wenn man nicht weiß…

…dass das ganz einfach Zahlen sind. Man kann ein Datum in einer Zelle in eine Zahl umformatieren, 60 abziehen und dann mit den anderen in Zahlen umformatierten Datümmern vergleichen.

Was ein gelöschtes Datum sein soll, muss man sich dann vielleicht mal überlegen. Kleiner Hinweis dazu: eine „0“ ergibt als Datum den „00.01.1900“ - was immer sich MS dabei gedacht haben mag.

Hatte ich auch schonmal so formatiert. Das Problem ist für mich die richtige Formel im VBA Code unterzubringen. Spezifiziere mal meine Vorstellung: In der Spalte „E“ sind Werte oder Datum vorhanden. Von diesen werten sollen automatisch die Zeileninhalte gelöscht werden, wo das Datum älter 60 Tage ab Heute() errechnet wird. Das Datum Heute() könnte auch in einer Zelle z. B „G2“ als Bezug stehen. so in etwa: Werte Spalte „E:E“ löschen wenn das Datum z. B. (Heute oder aus einer Zelle) länger als 60 Tage vergangen ist. Hierfür suche ich eine Formel/ VBA Codezeile die ich einbringen könnte. Danke

Sorry, bei

helfe ich nicht. Das ist prinzipiell ein derartiges Einfalltor für alle Arten von Schadsoftware, dass damit ausschließlich echte Experten arbeiten sollten, die wissen, wie man eigene Makros mit einem Zertifikat versieht und ausnahmslos alle von außen kommenden Makros bei allen Mitarbeitern/Angehörigen/Kunden abschaltet.

Die Antwort verstehe ich jetzt nicht.

Aber vielleicht kann mir jemand anderes den folgenden Code etwas im Bezug auf die einzelnen Eingaben erklären? Hier mal der Code:

Private Sub Worksheet_Activate()

Dim i As Long
With Sheets(„Tabelle1“)
For i = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
’ If .Cells(i, 5) < Date Then .Rows(i).Delete Shift:=xlUp

     If .Cells(i, 1) < Date + 5 Then .Rows(i).Delete Shift:=xlUp
     
     
    ' If .Cells(i, 5) > Date - 90 And .Cells(i, 1) < Date - 60 Then .Rows(i).Delete Shift:=xlUp
     
     
  Next

End With
End Sub