Private
Sub
Worksheet_Change(
ByVal
Target
As
Range)
Const
lngVisible
As
Long
= 60
Const
blnTitle =
True
Dim
rngUsed
As
Range, rngVisible
As
Range
Dim
lngAbs
As
Long
, lngRow
As
Long
On
Error
GoTo
fail
lngRow = ActiveWindow.ScrollRow
Application.ScreenUpdating =
False
lngAbs = lngVisible - 1
Set
rngUsed = ActiveSheet.UsedRange
Set
rngVisible = rngUsed.Rows(rngUsed.Rows.Count).Offset(-lngAbs, 0).Resize(lngVisible)
rngUsed.EntireRow.Hidden =
True
rngVisible.EntireRow.Hidden =
False
If
blnTitle
Then
Rows(1).Hidden =
False
ActiveWindow.ScrollRow = lngRow
On
Error
GoTo
0
fail:
If
Err.Number <> 0
Then
rngUsed.EntireRow.Hidden =
False
Application.ScreenUpdating =
True
End
Sub