Guia do Excel

Classificação automática no Excel

Planilha Excel de exemplo que demonstra como realizar o filtro automático ao dar um duplo clique em uma coluna utilizando VBA Excel.

MR
Marcos Rieper

Especialista em Excel

Atualizado em 08 de julho de 2026 Publicado em 01 de agosto de 2012 3 min de leitura

Classificação automática no Excel

Objetivo: Demonstrar como realizar o filtro automático ao dar um duplo clique em uma coluna utilizando VBA Excel.

Introdução

Muitas vezes utilizamos uma planilha diariamente e temos que classificar os dados várias vezes, o que significa que você terá que realizar esta classificação pelo caminho natural do Excel de selecionar a planilha, clicar na guia Dados->Classificar e escolher a coluna.

Neste artigo foi criado um exemplo de como aliar o Excel e o VBA para realizar esta classificação automaticamente ao dar um duplo clique sobre a coluna que se deseja classificar.

Como foi feito

Foi inicialmente criada uma lista de dados Excel com os títulos descritos sobre cada uma das colunas.

Esta será a nossa lista de exemplo.

Após isso é necessário algum conhecimento de VBA para realizar a tarefa, mas o exemplo pode ser replicado para outras planilhas.

Foi criado então um evento de escuta da planilha intitulada "Lista", que ficará aguardando o duplo clique do mouse e se o mesmo for realizado na primeira linha e se esta estiver preenchida com alguma palavra então o VBA irá desativar os eventos e chamar  oprocedimento VBA que realiza a classificação automática de dados.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Row = 1 And Target.Value  "" Then
        Application.EnableEvents = False
        lsClassificarAutomatico Target
        Application.EnableEvents = True
    End If
    Cancel = True
End Sub

Realizando a classificação automática com Excel e VBA

Para realizar a classificação automática foi criado o seguinte código VBA Excel que está com seu código devidamente comentado:

Sub lsClassificarAutomatico(ByVal vTarget As Range)

    Dim lUltimaLinahAtiva   As Long
    Dim lColuna             As String
    Dim lUltimaColuna       As String
    
    'Desabilita a atualização visual da tela
    Application.ScreenUpdating = False
       
    'Identifica a última coluna ativa
    lUltimaColuna = Left(Replace(Cells(1, Cells.Columns.Count).End(xlToLeft).Address, "$", ""), Len(Replace(Cells(1, Cells.Columns.Count).End(xlToLeft).Address, "$", "")) - 1)
    
    'Identifica a última linha ativa
    lUltimaLinhaAtiva = Worksheets(vTarget.Worksheet.Name).Cells(Worksheets(vTarget.Worksheet.Name).Rows.Count, vTarget.Column).End(xlUp).Row
    
    'Identifica a coluna clicada
    lColuna = Left(Replace(vTarget.Address, "$", ""), Len(Replace(vTarget.Address, "$", "")) - 1)
    
    'Seleciona a lista de dados
    Columns("A:" & lUltimaColuna).Select
    
    'Limpa os campos classificados
    ActiveWorkbook.Worksheets(vTarget.Worksheet.Name).Sort.SortFields.Clear
    
    'Realiza a nova classificação pela coluna selecionada
    ActiveWorkbook.Worksheets(vTarget.Worksheet.Name).Sort.SortFields.Add Key:=Range(lColuna & "2:" & lColuna & lUltimaLinhaAtiva) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(vTarget.Worksheet.Name).Sort
        .SetRange Range("A:" & lUltimaColuna)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    vTarget.Select
    
    'Habilita a atualização visual da tela
    Application.ScreenUpdating = True
End Sub

Funcionamento

Ao dar o duplo clique na coluna que deseja classificar, o código VBA Excel que está aguardando que seja realizado o duplo clique na primeira coluna irá identificar esta ação e realizar a chamada ao procedimento lsClassificarAutomatico que por sua vez irá limpar a classificação atual e aplicar a nova classificação pela coluna selecionada.

Você pode achar interessante também este outro artigo aonde os campos são tratados com auto filtros automáticos ao digitar:

http://guiadoexcel.com.br/planilha-com-filtro-automatico

Abraço

Marcos Rieper

Material gratuito

Planilha de Controle Financeiro no Excel

Tenha um controle bonito e completo do seu financeiro.

  • Categorias e subcategorias já configuradas
  • Planilhas separadas por tabela (configuração, lançamentos, resumo)
  • Personalize com suas próprias categorias e ícones

Baixe grátis — receba o link no seu e-mail

Este conteúdo foi útil?

Continue lendo