Put this in the worksheet module for Sheet1:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Terminate
If Not Intersect(Target, Range("G2:H2")) Is Nothing Then
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Range("A1").CurrentRegion.Offset(1, 0).ClearContents
With Sheet2
.Range("Table5").AutoFilter _
Field:=Application.Match(Target.Offset(-1, 0).Value, .Range("Table5[#Headers]"), 0), _
Criteria1:=YesNo(Target.Value)
.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy
Sheet1.Range("A1").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End With
Target.Activate
End If
Terminate:
If Err.Number Then
Debug.Print Err.Number, Err.Description
Err.Clear
End If
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Function YesNo(s As String) As String
YesNo = UCase(CStr(UCase(s) = "YES"))
End Function
Bookmarks