Eu gostaria de sugerir-lhe uma solução que é muito mais fácil e rápida. Se você usar este código VBA, não precisará criar muitos botões.
Tudo o que você precisa fazer.
-
Selecione o intervalo de dados inteiro, incluindo as linhas de cabeçalho, e vá para a caixa de nome ou pressione a aba de fórmulas e selecione Definir nome e NOME o intervalo de dados .
-
Copie este código VBA usando o VBE (Editor do Visual Basic).
-
Se tudo estiver pronto, clique duas vezes no nome do vendedor.
O Excel filtrará registros, usando o NAME clicado.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rgTable As Range
Dim rgData As Range
Dim xColumn As Integer
On Error Resume Next
Application.ScreenUpdating = False
Set rgTable = Range("SALES")
With rgTable
Set rgData = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count)
If Not Application.Intersect(ActiveCell, rgData.Cells) Is Nothing Then
xColumn = ActiveCell.Column - .Column + 1
If ActiveSheet.AutoFilterMode = False Then
.AutoFilter
End If
If ActiveSheet.AutoFilter.Filters(xColumn).On = True Then
.AutoFilter Field:=xColumn
Else
.AutoFilter Field:=xColumn, Criteria1:=ActiveCell.Value
End If
End If
End With
Set rgData = Nothing
Set rgTable = Nothing
Application.ScreenUpdating = True
End Sub
NB:
1.Este Código foi testado por mim antes de publicar aqui como Solução.
2. Estou sugerindo o método de clique duplo, com base em suas necessidades.
3. Na verdade, usando esse código, o Excel filtra os registros apenas no NOME DO HOMEM DE VENDAS, o que significa que é um filtro de CRITÉRIOS SIMPLES. Se você quiser adicionar mais Critérios, o Código precisará ser REVISADO.
Espero que isso ajude você.