Conforme prometido deixo aqui o código.
Código: Selecionar todos
Sub SortCustomOrder()
'
'
'
Dim LojaOper As String
Dim ListaOrdem As Long
LojaOper = ActiveWorkbook.Worksheets("Listas").Range("K2")
Select Case LojaOper
Case "CON"
Application.AddCustomList ListArray:=Array("CON", "COGP", "COCN", "COCS", "COGL", "COS")
ListaOrdem = Application.CustomListCount
Case "COGP"
Application.AddCustomList ListArray:=Array("COGP", "CON", "COCN", "COCS", "COGL", "COS")
ListaOrdem = Application.CustomListCount
Case "COCN"
Application.AddCustomList ListArray:=Array("COCN", "CON", "COGP", "COCS", "COGL", "COS")
ListaOrdem = Application.CustomListCount
Case "COCS"
Application.AddCustomList ListArray:=Array("COCS", "CON", "COGP", "COCN", "COGL", "COS")
ListaOrdem = Application.CustomListCount
Case "COGL"
Application.AddCustomList ListArray:=Array("COGL", "CON", "COGP", "COCN", "COCS", "COS")
ListaOrdem = Application.CustomListCount
Case "COS"
Application.AddCustomList ListArray:=Array("COS", "CON", "COGP", "COCN", "COCS", "COGL")
ListaOrdem = Application.CustomListCount
End Select
ActiveWorkbook.Worksheets("Listas").ListObjects("tbl_Produto").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("Listas").ListObjects("tbl_Produto").Sort.SortFields. _
Add Key:=Range("tbl_Produto[LOJA]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, CustomOrder:=ListaOrdem, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Listas").ListObjects("tbl_Produto").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.DeleteCustomList (ListaOrdem)
End Sub