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 visible. Mostrar todas as postagens
Mostrando postagens com marcador visible. Mostrar todas as postagens

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,

Excel VBA - AutoFiltro - Contando as Linhas visíveis - AutoFilter VBA

Excel VBA - AutoFiltro - Contando as Linhas visíveis - AutoFilter VBA








Usar AutoFiltro para filtrar dados é uma maneira rápida e fácil de encontrar e trabalhar com um subconjunto de dados em um intervalo de células ou tabela. Depois de filtrar dados em um intervalo de células ou tabela, você pode reaplicar um filtro para obter resultados, ou limpar um filtro para exibir novamente todos os dados.

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

Para que não criemos um monte de código supérfluo, segue-se um bom exemplo abaixo:

Contando as Linhas visíveis

Com este código de exemplo poderemos exibir uma mensagem que mostra a contagem das linhas visíveis com o filtro aplicado:

Sub CountVisRows()
'by Tom Ogilvy
Dim rng As Range
Set rng = ActiveSheet.AutoFilter.Range

MsgBox rng.Columns(1). _
   SpecialCells(xlCellTypeVisible).Count - 1 _
   & " of " & rng _
   .Rows.Count - 1 & " Records"
End Sub

Inline image 5




brazilsalesforceeffectiveness@gmail.com
✔ Brazil SFE®Author´s Profile  Google+   Author´s Professional Profile   Pinterest   Author´s Tweets

eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine