Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Cells.Count > 1 Then Exit Sub


    If Not Intersect(Target, Range("P10")) Is Nothing Then
        Select Case Target.Value
            Case "Horizontal": Range("A20").EntireRow.Hidden = True
            Case "Vertical": Range("A20").EntireRow.Hidden = False
        End Select
    End If

End Sub
Code goes into the worksheet module.