Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por LuccasMb 17 Mai 2019 às 19:24
Membro Novato
Mensagens: 3
Reputação: 0
#43959
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 todosSub 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
Por babdallas 20 Mai 2019 às 12:46
Membro 5 Estrelas
Mensagens: 1602
Reputação: 718
#44018
Anexe a planilha para que possamos testar.
Por LuccasMb 20 Mai 2019 às 15:20
Membro Novato
Mensagens: 3
Reputação: 0
#44036
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 todosSub organizarlistagem()
    Sheets("Listagem").Activate
    Dim DataRange As Range
    Set DataRange = ActiveSheet.UsedRange
    DataRange.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlYes
End Sub