Ir ao conteúdo
  • Cadastre-se
Lu Reis

Aplicar filtro com duplo clique na célula

Recommended Posts

Olá pessoal,

 

Gostaria de fazer com que minha planilha faça um "filtro" numa coluna mostrando apenas valores iguais ao valor em que eu dei o duplo clique.
Por exemplo, quando eu clicar duas vezes na célula que tem o valor "123", o Excel aplica um filtro na coluna e me mostra apenas os dados que contém "123".

E depois faria um botão para mostrar tudo novamente.


Agradeço a atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Copie e cole o codigo abaixo no modulo da sua planilha (aba).

 

Ao Clicar 2 vezes em qualquer celula, aparecera o autofiltro na coluna A

 

botaodireitasobreplan1.png

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    With Worksheets("Plan1")
        .Select
        .Range("A1").AutoFilter Field:=1, Criteria1:=Target.Value
    End With
End Sub

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom Basole, mas precisava dar uma lapidada nesse código.

 

Queria aplicar o filtro do duplo clique apenas na coluna que eu determinar (do jeito que está, ela aplica na coluna A qualquer valor que eu clicar duas vezes em qualquer parte da planilha.)

Por exemplo, a coluna C, a célula C1 seria o título da coluna e queria aplicar o esse método entre os valores contidos em C2 até C999.

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver estudando um código e criando esse abaixo, poderia verificar se não tem nada de errado (ou que possa me atrapalhar depois)?

 


 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim L_Plan1 As Long
    Dim C_Plan1 As Long
    
    L_Plan1 = ActiveCell.Row
    C_Plan1 = ActiveCell.Column

        If L_Plan1 >= 2 And C_Plan1 = 1 Then
           CNPJ = Cells(L_Plan1, 1).Value
           ActiveSheet.Range("$A$1:$AZ$10000").AutoFilter Field:=1, Criteria1:=CNPJ, Operator:=xlAnd
        End If

End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta meio confuso aqui pra mim, decifrar o que voce está querendo fazer.

 

Acho que seira melhor explicar através de de um exemplo com alguns dados.

 

De qq. forma veja se é isso:

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Count > 1 Or Target.Value = "" Then Exit Sub

If Not Intersect(Target, Range("C2:C999")) Is Nothing Then

    Cancel = True
    With Worksheets("Plan1")
        .Select
        .Range("$A$1:$AZ$10000").AutoFilter Field:=1, Criteria1:=Target.Value
    End With
    End If
    
End Sub

Editado por Basole
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito e muito mais simples.... Esse código eu peguei de outra planilha que já fazia isso, também achei muito confuso, mas estava funcionando.

Vou utilizar a sua ideia, é muito mais simples para dar manutenção. Obrigado!

adicionado 10 minutos depois

Só tive problemas com as células que contém #N/D, nesse caso dá erro e vai para a linha:

 

If Target.Count > 1 Or Target.Value = "" Then Exit Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×