Como Filtrar Simultaneamente Colunas no Excel Usando a Opção Botões?

0

Eu tenho uma folha de dados que me foi fornecida e me pediram para criar filtros para exibir dados específicos e, ao mesmo tempo, filtrar as datas. Ele gostaria de poder fazer essas alterações com botões de opção. Eu não tenho experiência com Excel ou macros, e apesar de ser uma pessoa técnica eu basicamente não cheguei a lugar nenhum.

A tabela se estende das colunas A para AB e das linhas 1 a 10.000. As linhas 1 a 12 compõem o cabeçalho. A coluna K é identificada como Status do projeto e contém as palavras Open ou Closed . Eu preciso ser capaz de ativar e desativar este filtro, exibindo todos os projetos ou apenas os projetos Open, com dois botões de opção agrupados. Depois, preciso especificar um intervalo de datas que funcione, seja exibindo todos ou apenas os projetos abertos, essencialmente filtrando os dados ainda mais. (ex. todos os projetos abertos nos últimos 6 meses) O intervalo de datas deve ser especificado da seguinte forma

com menos de 3 meses de idade

com menos de 6 meses de idade

menos de 1 ano de idade

entre 1 e 3 anos de idade

entre 3 e 5 anos de idade

maior que 5 anos

Mais 7 botões serão colocados em uma caixa de grupo separada para selecionar esses períodos e o sétimo botão para exibir todas as datas. Este filtro também deve ser calculado a partir da data atual. Tive mais problemas com isso, pois não sei como criar um filtro nos últimos cinco anos, o que ainda será preciso nos próximos anos, sem alterar manualmente a data em que se baseia.

Qualquer ajuda com isso seria muito apreciada.

    
por Phazerman 23.06.2017 / 17:06

1 resposta

0

Como o que você está fazendo é basicamente a mesma coisa repetida 7 vezes, aqui está como fazer isso uma vez. Eu configurei alguns dados em 3 colunas. Os dados são obviamente diferentes dos seus, mas a mesma ideia será aplicada.

Configuração inicial na planilha

Aqui estão as minhas 3 colunas com alguns dados preenchidos nelas.

codificaçãoVBA

PressioneAlt+F11paraabriroladodoVBA.Napartesuperior,selecioneInserir>Móduloe,emseguida,coloquealgoassimaqui:

PublicSubFilter1()Range("A1:C1").AutoFilter
    Range("$A$1:$C$6").AutoFilter Field:=1, Criteria1:="4"
End Sub

Explicação do código usado

A parte do código:

Range("A1:C1").AutoFilter

cria o filtro inicial (onde você vê as caixas suspensas aparecerem)

Esta parte do curso faz o filtro real:

Range("$A$1:$C$6").AutoFilter Field:=1, Criteria1:="4"
  • A parte do intervalo é o intervalo que está sendo filtrado. Observe que, se você tiver várias planilhas, convém chamar o intervalo como "'Planilha1'! $ A $ 1: $ C $ 6" em vez de apenas "$ A $ 1: $ C $ 6".

  • O número do campo é a coluna pela qual você está classificando. No meu exemplo, o campo 1 é a coluna A porque A foi a primeira coluna que selecionei para o meu intervalo. Se eu tivesse selecionado algo como "$ B $ 1: $ C $ 6" em vez do meu intervalo, o campo 1 seria a coluna B.

  • O Criteria1 é o que filtrar o campo por. Observe que os critérios podem ser maiores que, menores que, etc. Assim, você pode ter o Criteria1:="< 4" e ele terá o desempenho esperado.

Anexando o código a um botão

Eu posso anexar o código acima a um botão arrastando uma forma como um retângulo para minha folha, clicando com o botão direito do mouse na forma e clicando em Atribuir Macro ...

Depois, seleciono o subnome que eu criei, que é o Filter1, neste caso.

Agora você pode fazer o mesmo pelos seus filtros, alterando os critérios e intervalos. Repita também o número de filtros que você deseja fazer.

    
por 23.06.2017 / 17:53