Página 1 de 1

Problema error 438 com ListObjects (SortFields)

Enviado: 17 Mai 2019 às 17:24
por LuccasMb
Boa tarde a todos, antes de mais nada gostaria de pedir desculpa se minha pergunta já foi respondida, mas estou mandando essa mesnagem depois de muito esforço e muita pesquisa tentando resolver e não obtendo sucesso.

Eu desenvolvi uma planilha que roda perfeitamente em minha máquina Windows 10 x64 com Office 2016 x84 (minha máquina pessoal).
Eu passei ela pra outra máquina, nessa que acontece o problema, com Windows 10. Nessa máquina tinha o office 2016 x64 instalado, eu desinstalei e instalei o office 2016 x84.

Fiz diversas pesquisas acreditando que o problema era por causa do MSCOMCTL.OCX, não consegui resolver, mas cheguei a algumas conclusões.

O erro é o seguinte e imagino já ser bastante conhecido por aqui:

Erro em tempo de execução '438':
O objeto não aceita esta propriedade ou método.


Ao clicar em depurar ele me indica que o erro se encontra em (o código da sub completo se encontra no fim do tópico):
Código: Selecionar todos
 ActiveWorkbook.Worksheets("Listagem").ListObjects("Listagem").Sort.SortFields. _
        Add2 Key:=Range("Listagem[Cód.]"), SortOn:=xlSortOnValues, Order:= _
        xlDescending, DataOption:=xlSortNormal
Conclusão depois de acreditar que o problema era devido a vulnerabilidades em versão 64bits, que posso não estar no caminho correto para resolver, pois eu consigo inserir uma ListView em um formulário utilizando essa outra máquina (pode não ter nada a ver, só um palpite). Não sei qual caminho seguir, não consigo encontrar algo que me ajude a solucionar. O que me intriga é o código funcionar perfeitamente na primeira máquina que eu utilizei(minha máquina pessoal).

Agradeço desde já a atenção e a ajuda. Serei muito grato se alguém puder me ajudar.
Código: Selecionar todos
Sub organizarlistagem()
    Range("A2:L10000").Activate
    ActiveWorkbook.Worksheets("Listagem").ListObjects("Listagem").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Listagem").ListObjects("Listagem").Sort.SortFields. _
        Add2 Key:=Range("Listagem[Cód.]"), SortOn:=xlSortOnValues, Order:= _
        xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Listagem").ListObjects("Listagem").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Re: Problema error 438 com ListObjects (SortFields)

Enviado: 20 Mai 2019 às 10:46
por babdallas
Anexe a planilha para que possamos testar.

Re: Problema error 438 com ListObjects (SortFields)

Enviado: 20 Mai 2019 às 13:20
por LuccasMb
Resolvi meu problema da seguinte forma. Ainda não sei o porque do código anterior não funcionar em outros computadores, testei mais de 1 com mesmas configurações.

Mas substitui meu código por esse e funcionou perfeitamente.
Código: Selecionar todos
Sub organizarlistagem()
    Sheets("Listagem").Activate
    Dim DataRange As Range
    Set DataRange = ActiveSheet.UsedRange
    DataRange.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlYes
End Sub