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.