Página 1 de 1

Sort CustomOrder

Enviado: 04 Abr 2018 às 15:52
por JCabral
Boa tarde

Mais uma vez pedindo ajuda.

Preciso fazer um Sort de uma tabela em função da LOJA, com o item CustomOrder mas está dar-me erro.

O que estou a fazer mal?

Obrigado
Jorge Cabral

Re: Sort CustomOrder

Enviado: 04 Abr 2018 às 18:26
por osvaldomp
Experimente com ListaOrdem entre aspas, conforme abaixo.

CustomOrder:="ListaOrdem"

Sort CustomOrder

Enviado: 04 Abr 2018 às 19:00
por JCabral
Boa noite Osvaldomp

Não funcionou.

Obrigado
Jorge Cabral

Re: Sort CustomOrder

Enviado: 04 Abr 2018 às 19:11
por osvaldomp
Testaí, Cabral. Com bastante fé ... ;)

Segue cópia do seu arquivo com a alteração que eu sugeri. Se não funcionar aí, então o meu Excel tá com defeito de fabricação, pois aqui funciona.

Sort CustomOrder

Enviado: 04 Abr 2018 às 19:16
por JCabral
Osvaldo

Faz o Sort sempre pela COCN

Re: Sort CustomOrder

Enviado: 04 Abr 2018 às 19:51
por osvaldomp
JCabral escreveu: Preciso fazer um Sort de uma tabela em função da LOJA, com o item CustomOrder mas está dar-me erro.
Eu corrigi o erro que fazia o código travar. Quanto à aplicação do Sort , o código está seguindo os critérios que você impôs, eu não alterei. Então se não está de acordo, mexa nos critérios. Grave uma macro enquanto aplica o Sort, isso poderá te ajudar.

Sort CustomOrder

Enviado: 04 Abr 2018 às 20:11
por JCabral
Foi o que fiz e depois ajustei a macro, só que não esta a fazer o Sort em função da ListaOrdem, porque será?

Osvaldo entendo a sua resposta, mas a culpa é minha expressei-me mal, é obvio que estava a dar erro mas tambem não está a funcionar, ou seja não consigo atingir o objetivo, é possivel ajudar?

Jorge Cabral

Re: Sort CustomOrder

Enviado: 05 Abr 2018 às 12:39
por JCabral
Boa tarde Osvaldo

Já consegui resolver o problema, obrigado.

Mais logo coloco aqui a solução , pode dar jeito para outra pessoa aqui do fórum

Jorge Cabral

Re: Sort CustomOrder

Enviado: 05 Abr 2018 às 20:35
por JCabral
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