The number one tip I learned form this forum:
Dont use ".Select". Change all the ".Select" to ".Activate"

As an example: from your macro in the first post
 
Sheets("BENE").Activate
[BO2].Activate
Do Until ActiveCell = ""
If ActiveCell = "CAT A" Then
ActiveCell.EntireRow.Copy
Sheets("BENE CAT A").Activate
[A65536].Activate
Selection.End(xlUp).Activate
If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Activate
I tried running your macro but could not get past:
    Selection.Sort Key1:=Range("AU2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
It generates an error on Excel 2k.