Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

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

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

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



Saber desligar a aplicação de AutoFiltros dentro de uma pasta de trabalho pode ser útil. 

Veja abaixo:

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










Saber quantos AutoFiltros dentro de uma pasta de trabalho estão aplicados pode ser útil. 

Veja o exemplo abaixo:

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,




diHITT - Notícias