AW: Zeilen automatisch ausblenden
15.04.2017 17:36:58
Werner
Hallo Jürgen,
der Code gehört ins CodeModul des Blattes, auf dem er sich auswirken soll.
-Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster kopieren
Der Code startet automatisch, sobald du auf das entsprechende Blatt wechselst.
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.
Gruß Werner