Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Macro AutoFiltro Variáveis
Macro AutoFiltro Variáveis
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
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
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Macro AutoFiltro Variáveis
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
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
Re: Macro AutoFiltro Variáveis
Muito obrigadoRmarco 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/workbookCó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
Re: Macro AutoFiltro Variáveis
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.
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.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Macro AutoFiltro Variáveis
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 ...
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 ...
Re: Macro AutoFiltro Variáveis
Muito obrigado.
Na verdade eu soube sim interpretar, mas havia esquecido completamente do * coringa.
Me ajudou e muito.
Na verdade eu soube sim interpretar, mas havia esquecido completamente do * coringa.
Me ajudou e muito.