Ir ao conteúdo

Posts recomendados

Postado

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.

Postado

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
Postado

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.

Postado

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

 

Postado

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

  • Curtir 1
Postado

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

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!