.
Olá, Pessoal!
Já pesquisei aqui digitando “filtro” e “avançado”, sem obter o êxito de que preciso.
Estou querendo usar a ferramenta Macro para realizar um Filtro Avançado de critérios em J2:J3 e na própria tabela de intervalo A4:J20.
Eu tentei, seguindo os seguintes passos:
1º) Fui em Ferramentas → Macros → Gravar macro (habilitei em Ferramentas->Opções->LibreOffice->Avançado);
2º) Selecionei o intervalo A4:J20;
3º) Acionei as teclas de atalho Alt+D+F+F+A;
4º) Em “Ler os critérios de filtragem de”, selecionei os dados no intervalo J2:J3 e cliquei em OK; e
5º) Por fim, parei a gravação da macro, gravando no Módulo1 como “FiltrarDPs”.
Ao selecionar o intervalo A4:J20 e pedir para mostrar linhas (em Formatar->Linha->Mostrar),
nada acontece se tentar executar a macro gravada. Apenas seleciona o intervalo A4:J20, apesar de ter mostrado o resultado esperado antes de interromper a gravação da macro.
Seguem abaixo a macro gravada e o arquivo-modelo:
sub FiltrarDPs
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$'PLANILHA ÚNICA'.$A$4:$J$20"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:DataFilterSpecialFilter", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:FilterExecute", "", 0, Array())
end sub
Grato pela atenção!
Orlando Souza