11.08.2020, 14:43
Hallo miteinander,
ich habe vor einiger Zeit bereits eine Anfrage zu diesem Thema erstellt, bei der mir super geholfen wurde! An dieser Stelle noch einmal vielen Dank dafür!
Mein damaliges "Problem" ist aber leider noch nicht in Gänze gelöst und ich kann aufgrund meiner sehr geringen VBA-Kenntnisse trotz Google-Marathon leider
nicht selbst für Abhilfe sorgen. Aus diesem Grunde möchte ich Euch noch einmal um Unterstützung bitten:
Folgender Code soll dafür Sorge tragen, dass, sobald ein Datum in einer Zelle in Spalte "L" eingetragen wird, ein Eintrag in einer Zelle in Spalte "B" nach Ablauf von 40 Tagen gelöscht wird.
Beim jetzigen Code ist es so, dass dies funktioniert, wenn ich eine Datum eingebe das "Heute - 40 Tage" entspricht. Ich hätte es aber gern so, dass beim Öffnen der Liste geprüft wird, ob
in Spalte "L" Daten sind, die (basierend auf dem eingegebenen Datum) älter als 40 Tage sind und wenn ja, die jeweiligen Einträge in Spalte "B" gelöscht werden. Wenn in "L" keine Daten sind, soll nichts passieren.
Also einfach eine Automatisierung.
Hier ist der jetzige Code (dank an Schauan & Case!):
Option Explicit
Private Sub Worksheet_change(ByVal Target As Range)
Dim rngRange As Range
On Error GoTo Fin
Application.EnableEvents = False
If Not Intersect(Target, Columns("L")) Is Nothing Then
For Each rngRange In Target
If DateDiff("d", rngRange.Value, Date) > 40 And Trim(rngRange.Offset(, -10).Value) <> "" Then
rngRange.Offset(, -10).Value = ""
End If
Next rngRange
End If
Fin: Application.EnableEvents = True
If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Würde mich freuen, wenn jemand helfen kann!
Danke und beste Grüße
Tom
ich habe vor einiger Zeit bereits eine Anfrage zu diesem Thema erstellt, bei der mir super geholfen wurde! An dieser Stelle noch einmal vielen Dank dafür!
Mein damaliges "Problem" ist aber leider noch nicht in Gänze gelöst und ich kann aufgrund meiner sehr geringen VBA-Kenntnisse trotz Google-Marathon leider
nicht selbst für Abhilfe sorgen. Aus diesem Grunde möchte ich Euch noch einmal um Unterstützung bitten:
Folgender Code soll dafür Sorge tragen, dass, sobald ein Datum in einer Zelle in Spalte "L" eingetragen wird, ein Eintrag in einer Zelle in Spalte "B" nach Ablauf von 40 Tagen gelöscht wird.
Beim jetzigen Code ist es so, dass dies funktioniert, wenn ich eine Datum eingebe das "Heute - 40 Tage" entspricht. Ich hätte es aber gern so, dass beim Öffnen der Liste geprüft wird, ob
in Spalte "L" Daten sind, die (basierend auf dem eingegebenen Datum) älter als 40 Tage sind und wenn ja, die jeweiligen Einträge in Spalte "B" gelöscht werden. Wenn in "L" keine Daten sind, soll nichts passieren.
Also einfach eine Automatisierung.
Hier ist der jetzige Code (dank an Schauan & Case!):
Option Explicit
Private Sub Worksheet_change(ByVal Target As Range)
Dim rngRange As Range
On Error GoTo Fin
Application.EnableEvents = False
If Not Intersect(Target, Columns("L")) Is Nothing Then
For Each rngRange In Target
If DateDiff("d", rngRange.Value, Date) > 40 And Trim(rngRange.Offset(, -10).Value) <> "" Then
rngRange.Offset(, -10).Value = ""
End If
Next rngRange
End If
Fin: Application.EnableEvents = True
If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Würde mich freuen, wenn jemand helfen kann!
Danke und beste Grüße
Tom