try replacing your filterme macro with:
Sub Filterme()
Dim xx As Range  ' Macro4 Macro
Set OrigSelection = Selection
On Error Resume Next
Set xx = Range("C6:G6").SpecialCells(xlCellTypeConstants, 3)
On Error GoTo 0
If Not xx Is Nothing Then
  colmCount = xx.Cells.Count
  Set xx = Union(xx, xx.Offset(-1))
  Range("M5:Q6").ClearContents
  xx.Copy
  Range("M5").PasteSpecial Paste:=xlPasteValues
  OrigSelection.Select
  For Each cll In Range("M5").Resize(, colmCount)
    If InStr(1, cll.Value, "date", vbTextCompare) > 0 Then
      If InStr(1, cll.Value, "start", vbTextCompare) > 0 Then a = ">=" Else a = "<="
      cll.Value = "Date"
      cll.Offset(1).Value = a & CLng(cll.Offset(1).Value)
    End If
  Next cll
  Set CritRng = Range("M5").Resize(2, colmCount)
  Sheet2.Range("D4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=CritRng, CopyToRange:=Sheet1.Range("C8:I8"), Unique:=False
Else
  MsgBox "no filter criteria"
End If
End Sub
ps. if this is an assignment/homework your tutor (Trevor?) will probably suspect this is not your own work!