Habilitar Auto filtro com VBA
Enviado: 20 Jun 2018 às 09:37
Bom dia a todos. Tenho uma planilha com um botão que ao pressionado desbloqueia a planilha e ordena a coluna E de forma crescente e bloqueia novamente. O que preciso é que ao bloquear novamente deixe a opção de usar o AUTOFILTRO habilitada, porem na coluna J. Se eu bloqueio a planilha manualmente, eu consigo habilitar o filtro na opções de restrição, porem ao clicar no botão parra classificar ela protege a planilha sem deixar essa opção habilitada. Vou colar o código que estou usando nesse botão que classifica a COLUNA E. Lembrando que eu quero usar o filtro na coluna J. (ou liberar o filtro para todas as colunas, seria ainda melhor... Obrigado.
Sub Retângulo3_Clique()
'
' Macro5 Macro
'
'
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet
ActiveWorkbook.Worksheets("Plan4").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Plan4").AutoFilter.Sort.SortFields.Add _
Key:=Range("E2:E1800"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Plan4").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect DrawingObjects:=True, contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub
Sub ProtectSheet()
Dim Password 'Esta linha de código é opcional
Password = "123mudar" 'Informe a senha da sua Planilha
ActiveSheet.Protect Password, True, True, True
End Sub
Sub UnProtectSheet()
Password = "123mudar" 'Informe a senha da sua Planilha
ActiveSheet.Unprotect Password
End Sub
Sub Retângulo3_Clique()
'
' Macro5 Macro
'
'
'Coloca a chamada no inicio da sua rotina para que desproteja a sua Planilha
Call UnProtectSheet
ActiveWorkbook.Worksheets("Plan4").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Plan4").AutoFilter.Sort.SortFields.Add _
Key:=Range("E2:E1800"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Plan4").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect DrawingObjects:=True, contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
'Coloca a chamada no fim da sua rotina para que proteja novamente a sua Planilha
Call ProtectSheet
End Sub
Sub ProtectSheet()
Dim Password 'Esta linha de código é opcional
Password = "123mudar" 'Informe a senha da sua Planilha
ActiveSheet.Protect Password, True, True, True
End Sub
Sub UnProtectSheet()
Password = "123mudar" 'Informe a senha da sua Planilha
ActiveSheet.Unprotect Password
End Sub