Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' constants
Const kiRowsTitle = 13
Const kiRowsPerScreen = 55
' declarations
Dim lRowFirst As Long, lRowsHidden As Long
' start
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
' process
' define
Select Case Target.Row
Case Is <= kiRowsPerScreen
lRowsHidden = 0
Case Else
lRowsHidden = Target.Row - kiRowsPerScreen
If lRowsHidden >= kiRowsTitle Then lRowsHidden = kiRowsTitle - 1
End Select
' hide/unhide
Range(Rows(1), Rows(kiRowsTitle)).Hidden = False
If lRowsHidden <> 0 Then Range(Rows(1), Rows(lRowsHidden)).Hidden = True
' end
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub