Try:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    If Not Intersect(Target, Range("B12:B17")) Is Nothing Then
        Range("B13:B17").EntireRow.Hidden = True
        For Each c In Range("B12:B17")
            If Not IsEmpty(c) Then c.Resize(2, 1).EntireRow.Hidden = False
        Next c
    End If
End Sub