I've used a very similar procedure in the past, including the user of a dropdown menu. Maybe try just using a simplified targeting, instead of intersect:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$2" Then Call SuperFilter
End Sub
Sub SuperFilter()
Application.ScreenUpdating = False
Sheets("Report - Room").Range("A5:J164").ClearContents
Sheets("Filter").Range("A4:I200").ClearContents
Sheets("Master INFO").Range("A1:I36").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Filter").Range("A1:I2"), _
CopyToRange:=Sheets("Filter").Range("A4"), _
Unique:=False
Dim LR As Long, i As Long, n As Long
With Sheets("Filter")
LR = .Range("B" & .Rows.Count).End(xlUp).Row
n = 5
For i = 5 To LR
.Range("B" & i).Copy
Sheets("Report - Room").Activate
Sheets("Report - Room").Range("A" & n & ":" & "A" & n + 3).Select
Sheets("Report - Room").Paste
.Range("C" & i).Copy
Sheets("Report - Room").Activate
Sheets("Report - Room").Range("B" & n & ":" & "B" & n + 3).Select
Sheets("Report - Room").Paste
.Range("D" & i).Copy
Sheets("Report - Room").Activate
Sheets("Report - Room").Range("C" & n & ":" & "C" & n + 3).Select
Sheets("Report - Room").Paste
n = n + 4
Next i
End With
Application.ScreenUpdating = True
End Sub
Bookmarks