Usuário com melhor resposta
Auto filtro e Classificar

Pergunta
-
Olá, gostaria da ajuda da comunidade sobre VBA no Excel. O cenário é o seguinte, tenho um planilha com dados formatado como tabela (recurso Formatar como Tabela) com 8 campos, o campo "nome" está classificado por ordem crescente e existe um filtro aplicado para o campo estado mostrando apenas um dado. A pergunta é a seguinte: como eu faço para retornar via VBA qual campo foi classificado e qual campo está com filtro aplicado bem como qual o critério que foi selecionado?
Por exemplo, o campo "nome" está classificado em ordem crescente e o campo "estado" está filtrando somente estados de "SP", como verificar se o campo que foi classificado foi "nome" e se o filtro foi aplicado para o campo "estado" somente estado de "SP"?? Grato.
Respostas
-
bom dia, o exemplo abaixo verifica os critérios ativos, armazena no array ativos e exibe na tela através de msgbox.
Const QTDCAMPOS = 3 Dim i As Integer Dim j As Integer Dim filtros(QTDCAMPOS) As Variant Erase filtros j = 0 For i = 1 To QTDCAMPOS With Worksheets("NOMEDASUAPLANILHA") If .AutoFilterMode Then With .AutoFilter.Filters(i) If .On Then filtros(j) = .Criteria1 j = j + 1 End If End With End If End With Next i For i = 0 To j - 1 MsgBox filtros(i) Next i
Não esqueça de alterar NOMEDASUAPLANILHA para o nome da sua sheet ativa e a constante QTDCAMPOS para a quantidade de campos do seu filtro.
Se a resposta lhe foi útil, por favor marque como resposta.
Abs
- Marcado como Resposta SenseiMatsumoto segunda-feira, 22 de junho de 2015 15:26
Todas as Respostas
-
bom dia, o exemplo abaixo verifica os critérios ativos, armazena no array ativos e exibe na tela através de msgbox.
Const QTDCAMPOS = 3 Dim i As Integer Dim j As Integer Dim filtros(QTDCAMPOS) As Variant Erase filtros j = 0 For i = 1 To QTDCAMPOS With Worksheets("NOMEDASUAPLANILHA") If .AutoFilterMode Then With .AutoFilter.Filters(i) If .On Then filtros(j) = .Criteria1 j = j + 1 End If End With End If End With Next i For i = 0 To j - 1 MsgBox filtros(i) Next i
Não esqueça de alterar NOMEDASUAPLANILHA para o nome da sua sheet ativa e a constante QTDCAMPOS para a quantidade de campos do seu filtro.
Se a resposta lhe foi útil, por favor marque como resposta.
Abs
- Marcado como Resposta SenseiMatsumoto segunda-feira, 22 de junho de 2015 15:26
-