Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B28:B46")) Is Nothing Then
    If Target.Value = "" Then
        Target.Offset(1).EntireRow.Hidden = True
    Else
        Target.Offset(1).EntireRow.Hidden = False
    End If
End If
End Sub