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