2013 Atalho de Filtros da Tabela do Microsoft Excel

0

Gostaria de saber como inserir várias entradas no campo de pesquisa quando você tiver uma lista formatada como uma tabela ou tabela dinâmica. Estou aberto a qualquer solução viável. A lista muda diariamente e a lista de filtros é alterada com a mesma frequência. Como posso fazer um "copiar e colar" rápido de itens de pesquisa e conectá-los ao filtro para que apenas os dados apareçam? Vou incluir um pequeno exemplo, mas as listas podem ter milhares de linhas e os filtros de pesquisa podem ser centenas de números separados.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

    
por Sean 30.04.2018 / 21:01

1 resposta

0

Editar - percebi que você declarou que pode estar trabalhando com centenas de critérios. Minha resposta original só seria eficaz por alguns critérios. Atualizei o código abaixo, mas as imagens ainda podem fazer referência ao antigo VBA.

Você pode fazer isso com um módulo VBA e até criar um botão para clicar que filtrará com base nos valores inseridos em determinadas células. Você desejará ter a guia do desenvolvedor na faixa de opções se ainda não tiver sido exibida. Veja aqui como mostrá-lo.

Primeiro, determine quais células manterão seus critérios de filtragem. Na sua primeira foto, você tem aqueles em F3-F5. Tudo bem, mas quando o intervalo é filtrado, essas células podem ficar ocultas. Por causa desta demonstração, eu coloquei o intervalo em uma área que não irá desaparecer quando eu filtrar.

Emseguida,pressioneAlt+F11paraabriroeditordoVBAe,emseguida,crie"New Module" selecionando-o na lista suspensa mostrada aqui:

Najaneladonovomóduloqueaparece,digiteoseguintecódigo(EDITED-percebiquevocêestápotencialmentelidandocomcentenasdecritérios):

SubMultiSelectFilter()DimvAsVariantv=Split(Join(Application.Transpose(Range("A11:A13"))))
    Worksheets("Sheet3").Select
    Range("A1").AutoFilter
    Range("A1").AutoFilter Field:=1, Criteria1:=v, Operator:=xlFilterValues
End Sub

Veja como isso funciona: Primeiro, informamos ao Excel que A11: A13 são números que queremos procurar. É isso que a linha Dim v As Variant faz.

Então, dizemos ao excel quais são esses valores. No meu caso, A11 a A13. você pode adicionar ou subtrair quantos critérios de busca quiser.

Em seguida, informamos ao excel que intervalo queremos filtrar. Selecione a planilha primeiro e diga qual intervalo filtrar (nesse caso, A1 é a coluna que filtraremos). Em seguida, informamos à função AutoFilter quais valores devem ser procurados com Range("A1").AutoFilter Field:=1, Criteria1:=v, Operator:=xlFilterValues .

Agora, quando você inserir valores, poderá executar a macro MultiSelectFilter na guia do desenvolvedor, em "Macros"

Efiltraointervalo:

Paradarumpassoalémetorná-loumpoucomaisamigável,vocêpodeatribuiramacroaumbotão.Adicioneumbotãonaseção"Inserir" na guia do desenvolvedor e selecione a macro MultiSelectFilter.

Se você é novo no VBA, este é um ótimo projeto para começar! Espero que isso ajude.

    
por 01.05.2018 / 19:57