Prezados
Na minha busca por uma macro que possibilitasse uma classificação personalizada na planilha
(preciso classificar a ordem dos setores de acordo com a loja) consegui desenvolver a seguinte macro
Dim Loja As String
Dim setorOrdem As Integer
Dim EOrdem As Integer
Dim semOrdem As Integer
Dim Ulin As Long
Dim Planilha As Worksheet
Dim Intervalo As Range
Ulin = Sheets("RelModelo").Cells(Cells.Rows.Count, 1).End(xlUp).Row
Loja = ActiveWorkbook.Worksheets("RelModelo").Range("AN1")
Application.AddCustomList ListArray:=Array("SEG", "TER", "QUA", "QUI", "SEX", "Não")
semOrdem = Application.GetCustomListNum(Array("SEG", "TER", "QUA", "QUI", "SEX", "Não"))
Application.AddCustomList ListArray:=Array("J0", "J1", "J2", "J3", "J4", "J5", "J6", "J7", "J8", "J9", "J11", "J12", "1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "4b", "A8", "A13", "A15", "C1", "C2", "C3")
EOrdem = Application.GetCustomListNum(Array("J0", "J1", "J2", "J3", "J4", "J5", "J6", "J7", "J8", "J9", "J11", "J12", "1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "4b", "A8", "A13", "A15", "C1", "C2", "C3"))
ActiveWorkbook.Worksheets("Controles").Select
With ActiveWorkbook.Worksheets("Controles")
Select Case Loja
Case "Paraiso"
Application.AddCustomList ListArray:=Array("CAIXA", "CAIXA TOTAL", "FISCAL", "FISCAL TOTAL", "BOCA DE CAIXA", "BOCA DE CAIXA", "BOCA DE CAIXA TOTAL", "ENTREGAS", "ENTREGAS TOTAL", "APOIO", "APOIO TOTAL", "SALÃO", "SALÃO TOTAL", "AÇOUGUE", "AÇOUGUE TOTAL", "SALGADO", "SALGADO TOTAL", "LATICÍNIO", "LATICÍNIO TOTAL", "PADARIA", "PADARIA TOTAL", "QUITANDA", "QUITANDA TOTAL", "DEPÓSITO", "DEPÓSITO TOTAL", "DIVULGAÇÃO", "DIVULGAÇÃO TOTAL", "OBRAS", "OBRAS TOTAL", "TRANSPORTES", "TRANSPORTES TOTAL", "APOIO(N)", "APOIO(N) TOTAL", "ADMINISTRAÇÃO", "ADMINISTRAÇÃO TOTAL", "APRENDIZ", "APRENDIZ TOTAL")
setorOrdem = Application.GetCustomListNum(Array("CAIXA", "CAIXA TOTAL", "FISCAL", "FISCAL TOTAL", "BOCA DE CAIXA", "BOCA DE CAIXA", "BOCA DE CAIXA TOTAL", "ENTREGAS", "ENTREGAS TOTAL", "APOIO", "APOIO TOTAL", "SALÃO", "SALÃO TOTAL", "AÇOUGUE", "AÇOUGUE TOTAL", "SALGADO", "SALGADO TOTAL", "LATICÍNIO", "LATICÍNIO TOTAL", "PADARIA", "PADARIA TOTAL", "QUITANDA", "QUITANDA TOTAL", "DEPÓSITO", "DEPÓSITO TOTAL", "DIVULGAÇÃO", "DIVULGAÇÃO TOTAL", "OBRAS", "OBRAS TOTAL", "TRANSPORTES", "TRANSPORTES TOTAL", "APOIO(N)", "APOIO(N) TOTAL", "ADMINISTRAÇÃO", "ADMINISTRAÇÃO TOTAL", "APRENDIZ", "APRENDIZ TOTAL"))
Case "Trindade"
Application.AddCustomList ListArray:=Array("CAIXA", "CAIXA TOTAL", "FISCAL", "FISCAL TOTAL", "BOCA DE CAIXA", "BOCA DE CAIXA TOTAL", "ENTREGAS", "ENTREGAS TOTAL", "APOIO", "APOIO TOTAL", "APOIO(N) TOTAL", "APOIO(N)", "SALÃO", "SALÃO TOTAL", "AÇOUGUE", "AÇOUGUE TOTAL", "SALGADO", "SALGADO TOTAL", "LATICÍNIO", "LATICÍNIO TOTAL", "PADARIA", "PADARIA TOTAL", "QUITANDA", "QUITANDA TOTAL", "DEPÓSITO", "DEPÓSITO TOTAL", "DIVULGAÇÃO", "DIVULGAÇÃO TOTAL", "ESTACIONAMENTO", "ESTACIONAMENTO TOTAL", "OBRAS", "OBRAS TOTAL", "TRANSPORTES", "TRANSPORTES TOTAL", "ADMINISTRAÇÃO", "ADMINISTRAÇÃO TOTAL", "APRENDIZ", "APRENDIZ TOTAL")
setorOrdem = Application.GetCustomListNum(Array("CAIXA", "CAIXA TOTAL", "FISCAL", "FISCAL TOTAL", "BOCA DE CAIXA", "BOCA DE CAIXA TOTAL", "ENTREGAS", "ENTREGAS TOTAL", "APOIO", "APOIO TOTAL", "APOIO(N) TOTAL", "APOIO(N)", "SALÃO", "SALÃO TOTAL", "AÇOUGUE", "AÇOUGUE TOTAL", "SALGADO", "SALGADO TOTAL", "LATICÍNIO", "LATICÍNIO TOTAL", "PADARIA", "PADARIA TOTAL", "QUITANDA", "QUITANDA TOTAL", "DEPÓSITO", "DEPÓSITO TOTAL", "DIVULGAÇÃO", "DIVULGAÇÃO TOTAL", "ESTACIONAMENTO", "ESTACIONAMENTO TOTAL", "OBRAS", "OBRAS TOTAL", "TRANSPORTES", "TRANSPORTES TOTAL", "ADMINISTRAÇÃO", "ADMINISTRAÇÃO TOTAL", "APRENDIZ", "APRENDIZ TOTAL"))
Case "Itaipú"
Application.AddCustomList ListArray:=Array("CAIXA", "CAIXA TOTAL", "FISCAL", "FISCAL TOTAL", "BOCA DE CAIXA", "BOCA DE CAIXA", "ENTREGAS", "ENTREGAS TOTAL", "APOIO", "APOIO TOTAL", "APOIO(N)", "APOIO(N) TOTAL", "SALÃO", "SALÃO TOTAL", "AÇOUGUE", "AÇOUGUE TOTAL", "SALGADO", "SALGADO TOTAL", "LATICÍNIO", "LATICÍNIO TOTAL", "PADARIA", "PADARIA TOTAL", "QUITANDA", "QUITANDA TOTAL", "HORTI FRUTI", "HORTI FRUTI TOTAL", "LIMPEZA", "LIMPEZA TOTAL", "DEPÓSITO", "DEPÓSITO TOTAL", "DIVULGAÇÃO", "DIVULGAÇÃO TOTAL", "ESTACIONAMENTO", "ESTACIONAMENTO TOTAL", "OBRAS", "OBRAS TOTAL", "TRANSPORTES", "TRANSPORTES TOTAL", "ADMINISTRAÇÃO", "ADMINISTRAÇÃO TOTAL", "APRENDIZ", "APRENDIZ TOTAL", "PREVENÇÃO E PERDAS", "PREVENÇÃO E PERDAS TOTAL", "PROPAGANDA / MKTG", "PROPAGANDA / MKTG TOTAL", "SELF CCKOUT", "SELF CCKOUT TOTAL", "VINHOS", "VINHOS TOTAL")
setorOrdem = Application.GetCustomListNum(Array("CAIXA", "CAIXA TOTAL", "FISCAL", "FISCAL TOTAL", "BOCA DE CAIXA", "BOCA DE CAIXA", "ENTREGAS", "ENTREGAS TOTAL", "APOIO", "APOIO TOTAL", "APOIO(N)", "APOIO(N) TOTAL", "SALÃO", "SALÃO TOTAL", "AÇOUGUE", "AÇOUGUE TOTAL", "SALGADO", "SALGADO TOTAL", "LATICÍNIO", "LATICÍNIO TOTAL", "PADARIA", "PADARIA TOTAL", "QUITANDA", "QUITANDA TOTAL", "HORTI FRUTI", "HORTI FRUTI TOTAL", "LIMPEZA", "LIMPEZA TOTAL", "DEPÓSITO", "DEPÓSITO TOTAL", "DIVULGAÇÃO", "DIVULGAÇÃO TOTAL", "ESTACIONAMENTO", "ESTACIONAMENTO TOTAL", "OBRAS", "OBRAS TOTAL", "TRANSPORTES", "TRANSPORTES TOTAL", "ADMINISTRAÇÃO", "ADMINISTRAÇÃO TOTAL", "APRENDIZ", "APRENDIZ TOTAL", "PREVENÇÃO E PERDAS", "PREVENÇÃO E PERDAS TOTAL", "PROPAGANDA / MKTG", "PROPAGANDA / MKTG TOTAL", "SELF CCKOUT", "SELF CCKOUT TOTAL", "VINHOS", "VINHOS TOTAL"))
End Select
End With
Set Planilha = ActiveWorkbook.Worksheets("RelModelo")
Set Intervalo = Range("A4:Ak" & Ulin)
'ordena os setores de acordo com a loja
Planilha.Sort.SortFields.Clear
Planilha.Sort.SortFields.Add Key:=Range("A4"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=setorOrdem, DataOption:=xlSortNormal
With Planilha.Sort
.SetRange Range("A4:Ak" & Ulin)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'ordena as equipes
Planilha.Sort.SortFields.Add Key:=Range("D4"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=EOrdem, DataOption:=xlSortNormal
With Planilha.Sort
.SetRange Range("A4:Ak" & Ulin)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'ordena pelo dia da semana
Planilha.Sort.SortFields.Add Key:=Range("e4"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:=semOrdem, DataOption:=xlSortNormal
With Planilha.Sort
.SetRange Range("A4:Ak" & Ulin)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.DeleteCustomList setorOrdem
Application.DeleteCustomList EOrdem
Application.DeleteCustomList semOrdem
End Sub
Daí que ela roda e não sei nem como, nem porque, o arquivo fecha e quando o Excel reabre e aparece a mensagem
O Excel encontrou conteúdo ilegível ... deseja reparar?
A pasta não pode ser reparada pelo MSEsexcel pq está corrompida.
Estou usando Excel 2010. 32 bits versão (14.0.7208.5000)
Alguém teria condições de me dizer o que está acontecendo e como contornar esse problema? esta macro é fundamental para meu projeto e muito provavelmente vai ser usada em uma versão 2007 do Excel. E só falta isso para finalizar.
Desde já agradeço a atenção