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
Pergunta
thairo
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
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.