Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Macro AutoFiltro Variáveis

Perguntas e Repostas sobre os artigos, posts e arquivos que são postados no site
TIG_PLAN
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Dez 17, 2014 7:20 pm

Macro AutoFiltro Variáveis

Mensagem por TIG_PLAN »

Boa noite, pessoal.
Estou precisando de ajuda. Estou fazendo uma macro onde ela abre um arquivo com caminho pré determinado,nele preciso filtrar em uma mesma coluna 3 variáveis.
Exemplo:
Coluna B tenho os textos:
Loc 45 - Minas Gerais
Loc 12 - Rio de Janeiro
Loc 13 - São Paulo
Loc 15 - Curitiba
Loc 23 - Goiás.

Preciso que filtre onde contém somente loc 45,loc 15 e loc 23, no excel tenho opção somente de 2 variaves na função "contém" . Posterior a isso copiarei o resultado e colarei em outra planilha para tratar os dados.

Obrigado


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Macro AutoFiltro Variáveis

Mensagem por Reinaldo »

Uma possibilidade, mas precisa ser adaptada a sua realidade
Considerando que a(s) variaveis de filtro estejam na coluna AK, e os dados copiados para planilha nomeada Plan1 no mesmo arquivo/workbook

Código: Selecionar todos

Sub Filtra()
Dim Cr As Integer, R As Integer, Nome As String
    Cr = Cells(Rows.Count, "A").End(xlUp).Row
For R = 2 To Cells(Rows.Count, "ak").End(xlUp).Row
    Nome = Range("AK" & R).Value
    ActiveSheet.Range("$A$1:$AH$" & Cr).AutoFilter Field:=3, Criteria1:=Nome
    ActiveSheet.Range("A2:AH" & Cells(Rows.Count, "A").End(xlUp).Row).Copy Destination:=Sheets("Plan1").Range("A" & Sheets("Plan1").Cells(Rows.Count, "A").End(xlUp).Row + 1)
Next
Range("A1").Select
End Sub
Anexos
Cópia de planilha(filtro).zip
(12.02 KiB) Baixado 529 vezes


TIG_PLAN
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Dez 17, 2014 7:20 pm

Re: Macro AutoFiltro Variáveis

Mensagem por TIG_PLAN »

Rmarco escreveu:Uma possibilidade, mas precisa ser adaptada a sua realidade
Considerando que a(s) variaveis de filtro estejam na coluna AK, e os dados copiados para planilha nomeada Plan1 no mesmo arquivo/workbook

Código: Selecionar todos

Sub Filtra()
Dim Cr As Integer, R As Integer, Nome As String
    Cr = Cells(Rows.Count, "A").End(xlUp).Row
For R = 2 To Cells(Rows.Count, "ak").End(xlUp).Row
    Nome = Range("AK" & R).Value
    ActiveSheet.Range("$A$1:$AH$" & Cr).AutoFilter Field:=3, Criteria1:=Nome
    ActiveSheet.Range("A2:AH" & Cells(Rows.Count, "A").End(xlUp).Row).Copy Destination:=Sheets("Plan1").Range("A" & Sheets("Plan1").Cells(Rows.Count, "A").End(xlUp).Row + 1)
Next
Range("A1").Select
End Sub
Muito obrigado


TIG_PLAN
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Dez 17, 2014 7:20 pm

Re: Macro AutoFiltro Variáveis

Mensagem por TIG_PLAN »

Rmarco,

Obrigado, porém como havia citado, preciso que filtre conforme o exemplo: seria um filtro com variáveis e que contenha uma parte do texto. no caso pode ser que a loc 45 tenha mais estados correlacionados, ou seja deveria me retornar LOC 45 em minas, curitiba e goias. Dessa forma precisaria que filtrasse mais de uma condição que contenha em textos em uma mesma coluna

Loc 45 - Minas Gerais
Loc 12 - Rio de Janeiro
Loc 13 - São Paulo
Loc 45 - Curitiba
Loc 45 - Goiás.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Macro AutoFiltro Variáveis

Mensagem por Reinaldo »

Pois é, o proposto pode "fazer" isso; considerei que saberia interpretar a sugestão.
Em uma coluna da planilha a ser filtrada (por exemplo coluna AK), digite os parâmetros desejados:
Exemplo: AK2=Loc 45; AK3=Loc 12..... ou AK2=45; AK3=12
Na rotina proposta altere o critério assim:
ActiveSheet.Range("$A$1:$AH$" & Cr).AutoFilter Field:=3, Criteria1:="=*" & Nome & "*"
Obs.: O caractere * (asterisco) é considerado um caractere coringa, substituindo qualquer valor antes/depois do texto; é o "contem".
Veja bem estou passando condições genéricas, as quais devem ser adaptadas a sua realidade já que não conheço sua planilha / layout da mesma.
Considerado uma range de copia A2 até AH...; o filtro é aplicado na coluna 3 (não sei qual a coluna de seu projeto).
Os dados são copiados para uma sheet nomeada Plan1 no mesmo arquivo.
Se não for isso ...


TIG_PLAN
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Dez 17, 2014 7:20 pm

Re: Macro AutoFiltro Variáveis

Mensagem por TIG_PLAN »

Muito obrigado.
Na verdade eu soube sim interpretar, mas havia esquecido completamente do * coringa.
Me ajudou e muito.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder