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

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 - Copiando Linhas Filtradas - AutoFilter VBA








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

Segue-se um bom exemplo abaixo:

Copiando Linhas Filtradas

O código followingExcel copiará as linhas filtradas da aba ativa para aba seguinte.

Sub CopyFilter()
Dim rng As Range
Dim rng2 As Range

With ActiveSheet.AutoFilter.Range
 On Error Resume Next
   Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
       .SpecialCells(xlCellTypeVisible)
 On Error GoTo 0
End With
If rng2 Is Nothing Then
   MsgBox "No data to copy"
Else
   Worksheets("Sheet2").Cells.Clear
   Set rng = ActiveSheet.AutoFilter.Range
   rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy _
     Destination:=Worksheets("Sheet2").Range("A1")
End If
   ActiveSheet.ShowAllData
End Sub


Tags: VBA, Excel, Autofilter, filtro, automático, protegida, senha, AutoFiltro, worksheet, filtered, copy, filtrada, row

Excel VBA - AutoFiltro - Aplicando-o na Worksheet protegida - AutoFilter VBA








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

Segue-se um bom exemplo abaixo:

Aplicando o AutoFiltro na Worksheet protegida

Podemos usar o AutoFiltro numa planilha protegida, mas não podemos criar um AutoFiltro numa planilha protegida.

Assegure-se de que o filtro esteja no lugar antes da folha ser protegida.

Na versão 2002 do MS Excel e em versões posteriores, podemos permitir aos usuários usar o AutoFiltro quando definimos a proteção da planilha. (veja caixa de diálogo Proteger Folha abaixo)

Inline image 3

Nas versões anteriores, use uma macro Workbook_Open para definir a proteção na interface única do usuário.

Private Sub Workbook_Open() 
'check for filter, turn on if none exists
With Worksheets("Data")
  If Not .AutoFilterMode Then
    .Range("A1").AutoFilter
  End If
  .EnableAutoFilter = True
  .Protect Password:="password", _
  Contents:=True, UserInterfaceOnly:=True
End With
End Sub 


Para acessar o módulo ThisWorkbook, utilize o botão direito do mouse no ícone do Excel à esquerda do menu Arquivo, selecione Exibir Código e cole o código onde o cursor estiver piscando.

Inline image 4



Tags: VBA, Excel, Autofilter, filtro, automático, protegida, senha, AutoFiltro, worksheet, protegida, protected, 

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