Não sei exatamente o que você quer dizer com "atualizando manualmente cada linha", mas se você colocar o código em um subpasta Worksheet_Change no objeto da planilha (não um módulo), ele será executado automaticamente sempre que a célula for D4 é atualizado nessa planilha
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
If Target.Value = "No" Then
Rows("5:6").EntireRow.Hidden = True
ElseIf Target.Value = "Yes" Then
Rows("5:6").EntireRow.Hidden = False
End If
End If
End Sub