Matheus06 Postado Julho 13, 2022 Denunciar Share Postado Julho 13, 2022 Olá a todos, esperam que estejam bem! Saberia me dizer de qual forma eu consigo reduzir as linhas abaixo? Sheets("02").Select Columns("J:P").Select Selection.AutoFilter ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="=" Columns("O:P").Select Selection.EntireColumn.Hidden = False Range("A1").Select Sheets("03").Select Columns("J:P").Select Selection.AutoFilter ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="=" Columns("O:P").Select Selection.EntireColumn.Hidden = False Range("A1").Select Sheets("07").Select Columns("J:P").Select Selection.AutoFilter ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="=" Columns("O:P").Select Selection.EntireColumn.Hidden = False Range("A1").Select Sheets("09").Select Columns("J:P").Select Selection.AutoFilter ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="=" Columns("O:P").Select Selection.EntireColumn.Hidden = False Range("A1").Select Sheets("10").Select Columns("J:P").Select Selection.AutoFilter ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="=" Columns("O:P").Select Selection.EntireColumn.Hidden = False Range("A1").Select Sheets("14").Select Columns("J:P").Select Selection.AutoFilter ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="=" Columns("O:P").Select Selection.EntireColumn.Hidden = False Range("A1").Select Sheets("Fechamento").Select Eu acrescento novas ABAs recorrentemente, então gostaria de saber se há alguma forma de ou reduzir as linhas ou deixar um comando. Como por exemplo, selecionar todas as outras abas sem ser ''Fechamento'' e realizar o código. Desde já agradeço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alyson Ronnan Martins Postado Julho 13, 2022 Denunciar Share Postado Julho 13, 2022 Bom dia @Matheus06 Tenta fazer um loop para ele sozinho identificar quantas e quais folha tem sua planilha, abaixo eu fiz um exemplo como ficaria fazer um loop pela planilha que tenho o nome sequência "01", "02, "05" ... e uma função para verificar se a planilha existe: Public Sub FiltrarDados() 'Variáveis Dim i As Long Dim Folha As String 'Desativar animações e calculos para macro ser mais rápida Application.ScreenUpdating = False Application.Calculation = xlCalculationManual 'Loop para fazer formatação For i = 1 To 20 Folha = Format(i, "00") If CheckSheet(Folha) Then 'Se existir a planilha fazer a formatação padrão Sheets(Folha).Select Columns("J:P").Select Selection.AutoFilter ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="=" Columns("O:P").Select Selection.EntireColumn.Hidden = False Range("A1").Select End If Next i 'Ativar animações e calculos Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Calculate End Sub Função para chegar se a folha existe: Function CheckSheet(pName As String) As Boolean 'Updateby20140617 'fonte: https://pt.extendoffice.com/documents/excel/1743-excel-check-if-a-sheet-exists.html#:~:text=Salve%20este%20c%C3%B3digo%2C%20volte%20para,na%20pasta%20de%20trabalho%20atual. Dim IsExist As Boolean IsExist = False For i = 1 To Application.ActiveWorkbook.Sheets.Count If Application.ActiveWorkbook.Sheets(i).Name = pName Then IsExist = True Exit For End If Next CheckSheet = IsExist End Function Como não tenho nenhuma planilha como exemplo não consigo simular em seus dados. Verificar se deu certo, se não tiver consigo tenta colocar uma planilha com dados fictícios dentro do google drive e compartilha o link para fazer o teste do código na minha máquina. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Matheus06
Olá a todos, esperam que estejam bem! Saberia me dizer de qual forma eu consigo reduzir as linhas abaixo?
Sheets("02").Select
Columns("J:P").Select
Selection.AutoFilter
ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="="
Columns("O:P").Select
Selection.EntireColumn.Hidden = False
Range("A1").Select
Sheets("03").Select
Columns("J:P").Select
Selection.AutoFilter
ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="="
Columns("O:P").Select
Selection.EntireColumn.Hidden = False
Range("A1").Select
Sheets("07").Select
Columns("J:P").Select
Selection.AutoFilter
ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="="
Columns("O:P").Select
Selection.EntireColumn.Hidden = False
Range("A1").Select
Sheets("09").Select
Columns("J:P").Select
Selection.AutoFilter
ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="="
Columns("O:P").Select
Selection.EntireColumn.Hidden = False
Range("A1").Select
Sheets("10").Select
Columns("J:P").Select
Selection.AutoFilter
ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="="
Columns("O:P").Select
Selection.EntireColumn.Hidden = False
Range("A1").Select
Sheets("14").Select
Columns("J:P").Select
Selection.AutoFilter
ActiveSheet.Range("$J$1:$P$3000").AutoFilter Field:=1, Criteria1:="="
Columns("O:P").Select
Selection.EntireColumn.Hidden = False
Range("A1").Select
Sheets("Fechamento").Select
Eu acrescento novas ABAs recorrentemente, então gostaria de saber se há alguma forma de ou reduzir as linhas ou deixar um comando. Como por exemplo, selecionar todas as outras abas sem ser ''Fechamento'' e realizar o código.
Desde já agradeço.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.