Ir para conteúdo
Fórum Script Brasil
  • 0

Filtro novo em cada ABA


thairo

Pergunta

Boa tarde galera, 

Tenho o seguinte código abaixo.

Ele cria uma nova planilha conforme o modelo padrão (perfeito)!

Porém quando eu executo o "botão" de pesquisa ele pega do modelo padrão.

Gostaria de ajuda no comentário     ' EXECUTA O FILTRO, imagino que seja ali para eu executar o filtro na nova planilha criada e não no modelo padrão!

 

Sub lsFiltroAutomatico()
      
    ' declara as variáveis
    Dim ultimaPlanilha As Integer
    Dim planilhaVerificada As Integer
    Dim nomePlanilha As String
    Dim padraoNomePlanilha As String
    Dim posicaoInicio As Integer
    
    ' copia o modelo da planilha
     Sheets("VT").Copy After:=Sheets(ThisWorkbook.Worksheets.Count)
    
    ' define o nome da planilha
    nomePlanilha = "VT"
    
    ' define o padrão de texto referente ao nome da planilha
    padraoNomePlanilha = nomePlanilha & " (*)"

    ' define a última planilha com "nomePlanilha" encontrada, o 0 (zero) indica que ainda não foi encontrada
    ultimaPlanilha = 0

    ' desativa atualização de tela
    Application.ScreenUpdating = False
            
    ' percorre todas as planilhas existentes
    For i = 1 To Sheets.Count Step 1
        ' verifica os nomes das planilhas
        If Sheets(i).Name = nomePlanilha And ultimaPlanilha = 0 Then
            ' define que foi encontrada uma planilha com o nomePlanilha
            ultimaPlanilha = 1
        ElseIf Sheets(i).Name Like padraoNomePlanilha Then
            ' define posição de início, considerando o total de caracteres do "nomePlanilha", um espaço, um parenteses e a posição do primeiro número, por isso do 3
            posicaoInicio = Len(nomePlanilha) + 3
            
            ' pega o número que está entre os parênteses
            planilhaVerificada = CInt(Mid(Sheets(i).Name, posicaoInicio, Len(Sheets(i).Name) - posicaoInicio))

            ' verifica o número da planilha atual com o número da última encontrada
            If planilhaVerificada > ultimaPlanilha Then
                ' define o número da última planilha encontrada
                ultimaPlanilha = planilhaVerificada
            End If
        End If
    Next i

    ' seleciona a planiha atual
    Sheets(Sheets.Count).Select

    ' verifica qual o nome deverá ser considerado
    If ultimaPlanilha = 0 Then
        Sheets(Sheets.Count).Name = nomePlanilha
    Else
        Sheets(Sheets.Count).Name = nomePlanilha & " (" & CStr(ultimaPlanilha + 1) & ")"
    End If
    
    ' EXECUTA O FILTRO
    Sheets("Clientes").Columns("A:AH").AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Range("VT!Criteria"), CopyToRange:=Range( _
    "VT!Extract"), Unique:=False

    Range("Database").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Criteria")

    ' ativa atualização de tela
    Application.ScreenUpdating = True

End Sub
 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...