Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

Mostrando postagens com marcador hide. Mostrar todas as postagens
Mostrando postagens com marcador hide. Mostrar todas as postagens

VBA Excel - Autofiltro - Ocultando Setas específicas nas listas de AutoFiltro - Excel List AutoFilter VBA - Hide List AutoFilter Arrows Specific Columns




Segue mais um exemplo de programação VBA para manipular AutoFiltro no MS Excel. 

O uso desse código nas listas de dados contidas nas tabelas das nossas planilhas.

Quando nomeamos as nossas tabelas de dados constituimos um ListObject, o qual automaticamente recebe a sua própria propriedade AutoFiltro.

Autofiltro - Mostrando todos os registros (Show All Records)
Autofiltro - Acionando o AutoFiltro da nossa Lista (Turn On List AutoFilter)
Autofiltro - Desligando a Lista de AutoFiltro (Turn Off List AutoFilter)
Autofiltro - Contando as Listas de AutoFiltros (Count List AutoFilters)
Autofiltro - Ocultando todas as Setas da lista de AutoFiltro, exceto uma (Hide Arrows Specific Columns)
Autofiltro - Ocultando Setas específicas nas listas de AutoFiltro (Hide Arrows Specific Columns)
Autofiltro - Visualizar todas as setas da Lista AutoFiltro (Show All List AutoFilter Arrows)
Autofiltro - Copiando Linhas filtradas específicas, sem os títulos (Copy Filtered List Rows Without Headings)
Autofiltro - Copiando Linhas filtradas específicas, com os títulos (Copy Filtered List Rows With Headings)
Autofiltro - Conte as Linhas Visíveis da Lista (Count Visible List Rows)

Ocultando Setas específicas nas listas de AutoFiltro

Talvez, em alguns casos específicos, queiramos ocultar as setas de colunas específicas na nossa lista de dados, deixando as demais setas visíveis. O código a seguir esconde as setas das colunas 1, 3 e 4 na 2ª lista.

Sub HideSpecifiedArrowsList2()
' Esconde setas (arrows) em colunas específicas na 2ª lista.

Dim Lst As ListObject
Dim c As Range
Dim i As Integer

Let Application.ScreenUpdating = False

Set Lst = ActiveSheet.ListObjects(2)

Let i = 1

For Each c In Lst.HeaderRowRange
Next

Let Application.ScreenUpdating = True
Select Case i
Case 1, 3, 4
    Lst.Range.AutoFilter Field:=i, _
      Visibledropdown:=False
Case Else
     Lst.Range.AutoFilter Field:=i, _
      Visibledropdown:=True
End Select

Let i = i + 1
EndSub

Tags: VBA, Excel, List, AutoFilter, autofiltro, worksheet, Show, Arrows, Specific Columns, Hide, 


Excel VBA - AutoFiltro - Escondendo as setas do AutoFiltro - AutoFilter VBA








Um truque interessante é impedir os usuários de filtrarem os seus dados, e neste caso pode ser que até mesmo os ajude a ser mais acertivos, por se esconder as setas de filtragem da planilha.

Podemos definir AutoFiltros dentro de uma pasta de trabalho do MS Excel

Segue-se um bom exemplo abaixo:

Escondendo as setas do AutoFiltro

Talvez você queira que os usuários filtrem apenas uma das colunas da tabela. O código a seguir esconde as setas para todas as colunas, exceto a coluna 2.

Sub HideArrows() 
'hides all arrows except column 2
Dim c As Range 
Dim i As Integer 
i = Cells(1, 1).End(xlToRight).Column 
Application.ScreenUpdating = False 

For Each c In Range(Cells(1, 1), Cells(1, i))
 If c.Column <> 2 Then 
  c.AutoFilter Field:=c.Column, _ 
    Visibledropdown:=False 
 End If 
Next 

Application.ScreenUpdating = True 
End Sub 

Inline image 2


Em outros casos, podemos querer ocultar as setas em colunas específicas, e deixar todas as outras visíveis. O procedimento a seguir esconde as setas para colunas 1, 3 e 4.


Sub HideSpecifiedArrows()

'hides arrows in specified columns

Dim c As Range

Dim i As Integer



Let i = Cells(1, 1).End(xlToRight).Column

Let Application.ScreenUpdating = False



For Each c In Range(Cells(1, 1), Cells(1, i))

    Select Case c.Column

    Case 1, 3, 4

        c.AutoFilter Field:=c.Column, _

          Visibledropdown:=False

    Case Else

        c.AutoFilter Field:=c.Column, _

          Visibledropdown:=True

    End Select

Next



Let Application.ScreenUpdating = True

End Sub

Para mostrar todas as setas, você pode usar o seguinte código:

Sub ShowArrows()
Dim c As Range
Dim i As Integer
i = Cells(1, 1).End(xlToRight).Column
Application.ScreenUpdating = False
For Each c In Range(Cells(1, 1), Cells(1, i))
c.AutoFilter Field:=c.Column, _
  Visibledropdown:=True
Next
Application.ScreenUpdating = True
End Sub

Se a tabela não começar na célula A1, poderá especificar o intervalo da posição, e esconder as setas nas células específicas desse intervalo.


Sub HideArrowsRange()
'hides arrows in specified range
Dim c As Range
Dim i As Integer
Dim rng As Range
Set rng = Range("D14:J14")
i = rng.Cells(1, 1).Column - 1
Application.ScreenUpdating = False

For Each c In Range("D14:J14")
    Select Case c.Address
    Case "$E$14", "$G$14", "$J$14"
        c.AutoFilter Field:=c.Column - i, _
          Visibledropdown:=False
    Case Else
        c.AutoFilter Field:=c.Column - i, _
          Visibledropdown:=True
    End Select
Next

Application.ScreenUpdating = True
End Sub

Caso a tabela não comece na célula A1, podemos especificar o intervalo da posição, mostrando todas as setas desse intervalo.

Sub ShowArrowsRange()
'shows arrows in specified range
Dim c As Range
Dim i As Integer
Dim rng As Range
Set rng = Range("D14:J14")
i = rng.Cells(1, 1).Column - 1
Application.ScreenUpdating = False
For Each c In Range("D14:J14")
    c.AutoFilter Field:=c.Column - i, _
      Visibledropdown:=True
Next
Application.ScreenUpdating = True
End Sub


Tags: VBA, Excel, Autofilter, filtro, automático, protegida, senha, hide, arrow, seta, AutoFiltro, worksheet, filtered, copy, filtrada, visible, esconder,

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine