Beispiel:
- Datum heute 15.04.2017 finden
- dann minus 21 Tage, also vom 24.03. bis 01.01.2017 ausblenden
- wieder zum Datum heute 15.40.2017
- alle weiteren Tage bis zum 31.12.2017 ausblenden
Für Hilfe wäre ich sehr dankbar.
Private Sub Worksheet_Activate()
Dim daAktuell As Date, daVon As Date, daBis As Date, daEnde As Date
Dim loVon As Long, loBis As Long, loAktuell As Long, loEnde As Long, loLetzte As Long
daAktuell = Date
daVon = DateSerial(Year(Date), 1, 1)
daBis = Date - 22
daEnde = DateSerial(Year(Date), 12, 31)
Columns("A:A").EntireRow.Hidden = False
loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
With Range("A1:A" & loLetzte)
loVon = .Find(daVon, LookIn:=xlValues).Row
loBis = .Find(daBis, LookIn:=xlValues).Row
loAktuell = .Find(daAktuell, LookIn:=xlValues).Row
loEnde = .Find(daEnde, LookIn:=xlValues).Row
.Range(.Cells(loVon, 1), .Cells(loBis, 1)).EntireRow.Hidden = True
.Range(.Cells(loAktuell + 1, 1), .Cells(loEnde, 1)).EntireRow.Hidden = True
End With
End Sub
Achtung: Find beginnt mit der Suche erst ab Zelle A2. Das bedeutet, dass der 1.1.17 erst in Zeile 2 stehen darf, sonst wird er nicht gefunden. Am Besten, wenn das bei dir nicht sowieso schon der Fall ist, in Zeile 1 eine Überschrift rein und mit den Datumswerten erst ab Zeile 2 beginnen.