Ok so I have found where it keeps breaking. The below code sorts by subtotalled fields for a specified range - however that range is variable. So when I add in more data, then re run, it does not include all the data in the sort.

I tried the Range suggestions above and unfortunately still could not get it working. Thanks in advance for help.

ActiveSheet.Outline.Showlevels RowLevels:=2
ActiveWorkbook.Worksheet("A-L").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("A-L").Sort.SortFields.Add Key:=Range("L2:L1094"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("A-L").Sort.SortFields.Add Key:=Range("K2:K1094"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("A-L").Sort.SortFields.Add Key:=Range("J2:J1094"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("A-L").Sort.SortFields.Add Key:=Range("I2:I1094"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("A-L").Sort.SortFields.Add Key:=Range("H2:H1094"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("A-L").Sort
        .SetRange Range("A1:N1094")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply