try this but make sure that sheet 5 is clear first:
Sub blah()
With Sheets("Sheet5")
  For Each cll In Sheets("Sheet1").Range("B3:Y3").Cells
    Set Destn = .Cells(2, cll.Column * 2 - 3)
    Sheets("Sheet1").Range(cll, cll.End(xlDown)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Destn, Unique:=True
    With .Sort
      .SortFields.Clear
      .SortFields.Add Key:=Destn, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      .SetRange Range(Destn, Destn.End(xlDown))
      .Header = xlNo
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply
    End With
  Next cll
End With
End Sub