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

Excel VBA - AutoFiltro - Mostrando todos os Registros numa planilha protegida - AutoFilter VBA








Se a planilha está protegida, sem senha, use este código para desprotegê-la, mostre tudo, e então coloque a proteção novamente.

Veja:

Sub ShowAllProtected()

With ActiveSheet
    .Unprotect
    .ShowAllData
    .Protect _
        Contents:=True, _
        AllowFiltering:=True, _
        UserInterfaceOnly:=True
End With


End Sub

Tags: VBA, Excel, Autofilter, filtro, AutoFiltro, worksheet, filtered, desligar, turn on,


Excel VBA - AutoFiltro - Mostrando todos os Registros do Filtro numa planilha protegida com senha - AutoFilter VBA








Se a planilha estiver protegida com senha, use um código para desprotegê-la, mostre tudo, e então coloque a proteção novamente.

Veja abaixo:

Sub ShowAllProtectedPwd()
Dim strPwd As String
strPwd = "andrebernardes"

With ActiveSheet
    .Unprotect Password:=strPwd
    .ShowAllData
    .Protect _
        Contents:=True, _
        AllowFiltering:=True, _
        UserInterfaceOnly:=True, _
        Password:=strPwd
End With

End Sub


Tags: VBA, Excel, Autofilter, filtro, AutoFiltro, worksheet, filtered, desligar, turn on,


Excel VBA - AutoFiltro - Ligue o AutoFiltro do MS Excel - AutoFilter VBA








Saber ligar os AutoFiltros numa aplicação pode ser útil. 

Veja abaixo:

Ligue o AutoFiltro do MS Excel

Use este código para ligar um AutoFiltro do Excel, caso não exista nenhum.


Sub TurnAutoFilterOn()

  If Not ActiveSheet.AutoFilterMode Then

    ActiveSheet.Range("A1").AutoFilter

  End If

End Sub

Excel VBA - Desligando o AutoFiltro do MS Excel - AutoFilter VBA








Desligando o AutoFiltro do MS Excel

Use este código para desligar um AutoFiltro no MS Excel, caso exista um.


Sub TurnFilterOff()

  Let Worksheets("Data").AutoFilterMode = False

End Sub 

Tags: VBA, Excel, Autofilter, filtro, AutoFiltro, worksheet, filtered, desligar, turn off,

Excel VBA - AutoFiltro - Contando os Autofiltros no MS Excel - AutoFilter VBA









Contando os Autofiltros no MS Excel

Se houver uma planilha com AutoFiltro na planilha ativa, este código irá retornar uma contagem deles.


Sub CountSheetAutoFilters()

Dim iARM As Long



  If ActiveSheet.AutoFilterMode = True Then iARM = 1



  Debug.Print "Nº de AutoFiltros: " & iARM

End Sub 


Tags: VBA, Excel, Autofilter, filtro, AutoFiltro, worksheet, filtered, count, 


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