Crie uma opção de filtro no Excel?

0

Eu tenho um documento do Excel com uma tabela chamada "Funcionários".

Eu quero criar botões que alternarão algum filtro (ligado / desligado).

Exemplo:

Default table:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active
 2 | Bob   | Beta      | Active
 3 | Alice | Charlie   | Inactive
 4 | Carol | Delta     | Active
 5 | Lewis | Echo      | Inactive

[Toggle active/all]:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active
 2 | Bob   | Beta      | Active
 4 | Carol | Delta     | Active

[Toggle Alice/all]:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active
 3 | Alice | Charlie   | Inactive

Esses dois botões só criam um filtro na coluna adequada ou o removem se já estiverem criados. Dessa forma, posso usar os dois botões para filtrar funcionários ativos da Alice.

[Toggle active/all] + [Toggle Alice/all]:
Id | Name  | Last name | Status
---+-------+-----------+---------
 1 | Alice | Alpha     | Active

A partir de agora, posso criar um filtro dessa maneira:

' Create a filter on 'Alice'
ActiveWorkbook.Sheets("Employees").ListObjects("Employees").Range.AutoFilter Field:=2, Criteria1:="Alice"
' Create a filter on 'active'
ActiveWorkbook.Sheets("Employees").ListObjects("Employees").Range.AutoFilter Field:=4, Criteria1:="Active"

Mas não sei como verificar se este filtro está ativado.

    
por JDOE 08.01.2018 / 11:33

1 resposta

-1

Você precisa criar um botão de alternância na planilha .

Deixe-me dizer como.

Crie um botão de comando, nomeie-o, por exemplo, botão Fltr, modifique-o como Alice. Então, no editor VB, crie este código.

Sub Fltrbutton_click()

ActiveSheet.AutofilterMode = False

If Fltrbutton.Caption = "Alice" then

      ActiveSheet.Range("$A$2:$D$20").AutoFilter Field:=2, Criteria1:="Alice"

    Fltrbutton.Caption = "Active"

Endif

If Fltrbutton.Caption = "Active" then

     ActiveSheet.Range("$A$30:$D$50").AutoFilter Field:=4, Criteria1:="Active"

   Fltrbutton.Caption = "Alice"

Endif

End Sub

Espero que este código de amostra ajude você a usar o Código adequadamente para ambos os Critérios.

NB: Altere o intervalo de dados e outros conforme necessário.

    
por 08.01.2018 / 13:01