You're right. The first code for hiding rows works, but the second code for mulitple selection from the dropdown does not. This is how it looks:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Not Intersect(Range("B141"), Target) Is Nothing Then
Range("A292:A659").EntireRow.Hidden = (LCase(Range("B141").Value) = "yes")
End If
If Not Intersect(Range("B143"), Target) Is Nothing Then
Range("A148:A291,A446:A659").EntireRow.Hidden = (LCase(Range("B143").Value) = "yes")
End If
If Not Intersect(Range("B145"), Target) Is Nothing Then
Range("A148:A445").EntireRow.Hidden = (LCase(Range("B145").Value) = "yes")
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cell As Range
Dim oldVal As String
Dim newVal As String
On Error GoTo ErrHandler
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Application.ScreenUpdating = False
If Not Intersect(Target, Range("G300:G302")) Is Nothing Then '
Set cell = Target.Cells(1)
oldVal = cell.Value
If oldVal <> "" Then
If InStr(1, cell.Value, ",") > 0 Then
newVal = InputBox("Selected options:", "Select options", cell.Value)
If newVal = "" Then
cell.ClearContents
Else
cell.Value = newVal
End If
End If
End If
End If
ErrHandler:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub