Quando se liga o filtro numa lista de folhas de trabalho Excel, ou se se cria uma tabela chamada Excel, cada célula na linha do cabeçalho mostra automaticamente uma seta descendente. Se não precisar delas, eis como pode ocultar setas no Excel AutoFilter.
Excel AutoFilter Arrows
Na linha de cabeçalho, um botão de seta AutoFilter mostra um ícone de filtro, se tiver filtrado essa coluna. Se apontar para uma seta com um ícone de filtro, uma dica de ferramenta pop up mostra o critério de filtragem.
Na imagem do ecrã abaixo, a coluna Cliente foi filtrada para mostrar 3 clientes específicos – FoodMart, MegaStore e VegiVille.
p>
AutoFilter Arrow Options
Para um AutoFilter, tem três opções para a exibição da seta:
- Deixar todas as setas que mostram
- Remover o AutoFilter, o que remove todas as setas
- Utilizar programação para esconder uma ou mais setas.
Retirar manualmente o AutoFiltro
Para uma lista de folhas de trabalho, ou uma tabela nomeada, pode ligar e desligar manualmente o AutoFiltro, que também mostra ou esconde os botões das setas.
- Clique em qualquer célula do intervalo filtrado
- Na Fita do Excel, clique no separador Dados
>li>Clique no botão Filtro.
Esconder Setas de AutoFiltro com Macro
Antes das Listas e Tabelas Nomeadas serem adicionadas ao Excel, só podia haver um AutoFiltro por folha de trabalho.
Agora, para além da folha de trabalho única AutoFiltro, pode colocar várias tabelas nomeadas numa folha. Cada uma dessas tabelas tem a sua propriedade AutoFilter.
Existem exemplos de código abaixo, para esconder setas numa lista AutoFilter, e uma folha de trabalho AutoFilter. Há mais exemplos de AutoFilter VBA no meu site Contextures:
- Excel Worksheet AutoFilter VBA
- Excel List AutoFilter VBA
Hide List AutoFilter Arrows With VBA
Se quiser deixar uma ou mais setas visíveis, mas esconder as outras, pode usar uma macro.
Neste exemplo, apenas a segunda coluna terá uma seta, e todas as outras setas serão ocultadas.
Este código foi concebido para uma tabela nomeada, que tem a sua própria propriedade AutoFilter. Podem existir várias tabelas nomeadas numa folha de trabalho, e as definições do AutoFilter de cada tabela podem ser diferentes.
Sub HideArrowsList1()'hides all arrows except list 1 column 2Dim Lst As ListObjectDim c As RangeDim i As IntegerApplication.ScreenUpdating = FalseSet Lst = ActiveSheet.ListObjects(1)i = 1For Each c In Lst.HeaderRowRange If i <> 2 Then Lst.Range.AutoFilter Field:=i, _ VisibleDropDown:=False Else Lst.Range.AutoFilter Field:=i, _ VisibleDropDown:=True End If i = i + 1NextApplication.ScreenUpdating = TrueEnd Sub
Esconder setas do AutoFilter da folha de trabalho Com VBA
Para ocultar as setas do AutoFilter de uma folha de trabalho, o código é ligeiramente diferente.
Existe apenas uma folha de trabalho AutoFilter numa folha de trabalho, e neste exemplo, a lista filtrada começa na célula A1.
O seguinte procedimento oculta as setas para todas as colunas excepto a coluna B.
Sub HideArrows()'hides all arrows except column 2Dim c As RangeDim i As Integeri = Cells(1, 1).End(xlToRight).ColumnApplication.ScreenUpdating = FalseFor Each c In Range(Cells(1, 1), Cells(1, i)) If c.Column <> 2 Then c.AutoFilter Field:=c.Column, _ Visibledropdown:=False End IfNextApplication.ScreenUpdating = TrueEnd Sub
Utilizar as Macros de Seta Ocultar
Para utilizar estas macros, copie-as para um módulo de código normal na sua pasta de trabalho. Há instruções aqui.
Só terá de executar o código uma vez, depois de ter configurado a lista filtrada. Para executar o código,
- Clique no separador Ver no Excel Ribbon
- Na extrema direita do separador, clique no comando Macros (clique na imagem no topo do comando)
- Na lista de macros, clique na macro que pretende executar
- Clique no botão Executar.