Notifications
Clear all

filtro avançado por data

9 Posts
2 Usuários
0 Reactions
2,259 Visualizações
(@juliowd)
Posts: 0
New Member
Topic starter
 

Olá. Feliz ano novo!!!
Espero que tenham passado bem!!

Gostaria de pedir a ajuda mais uma vez. Desta vez é sobre filtro avançado.
Já olhei 12 posts aqui no fórum e nenhum me retornou o que eu precisava. Sendo que em vários o arquivo baixava vazio.
Por isso recorro a um novo post.

Eu tenho um relatório financeiro, com várias informações.
Uma delas é DATA.
Eu fiz um filtro avançado que "filtra a lista no local".
Tranquilo.
Porém neste relatório eu vou precisar, por exemplo, de todos os lançamentos de janeiro.2015. Isso mesmo. Do mês inteiro.
E é aí que a coisa empacou. Até criei uma coluna ao lado, mas não me resolveu.
Como se resolve isso?

ps. arquivo exemplo anexo e compactado.

 
Postado : 07/01/2015 11:54 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Você mandou uma guia ("visualização e edição") sem dados (fictícios), eu não estou entendendo oque pretende!!

E se eu entendi bem, já foram postados dezenas de tópicos bem próximo disso.
Att

 
Postado : 07/01/2015 3:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue um modelo que, creio eu, faz o que deseja, veja se lhe atende/consegue adaptar ao seu modelo

 
Postado : 07/01/2015 4:30 pm
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi Reinaldo. Obrigado!!
Eu estudei tua macro.
Ela funcionou comigo tmb.
Mas eu não gostaria de usar o filtro normal. Eu gostaria de usar o filtro avançado.
Aí até pensei em adaptar, mas não manjo tanto assim.... =/

E Alexandre, obrigado pelo retorno.
Eu mando em anexo uma com mais dados de diferentes. Sem problemas.
E cara, eu pesquisei. Nada me ajudou. Nada tem algo que sirva para minha situação.
O que eu quero é usar o filtro avançado para filtrar, além de outros dados, os resultados dentro de um intervalo DEFINIDO de data (coluna B, iniciando na linha 13)
Este intervalo DEFINIDO de data, eu informo nas células B8 (inicial) e C8 (final).

Obrigado, feras!

 
Postado : 08/01/2015 6:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Eu não entendi, o Filtro vai ocultar o que deseja ocultar ou não, o Filtro Avançado, vai copiar para outra região os dados baseado ou não em um critério.

Você pretende somente filtrar um intervalo de data, há mais critérios? quais critérios ? em quais campos?

Att

 
Postado : 08/01/2015 7:05 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Alexandre, sobre tuas perguntas:

1) o Filtro vai ocultar o que deseja ocultar ou não:
r.: ele vai OCULTAR as datas que estejam FORA do intervalo. Em outras palavras, ele vai MOSTRAR as linhas que se encontrem DENTRO do intervalo informado.

2) o Filtro Avançado, vai copiar para outra região os dados baseado ou não em um critério?
r.: ele NÃO vai copiar para outra região. Filtrará os dados da própria região. (ps. para lembrança, eu não gostaria de usar o filtro normal)

3) há mais critérios?
r.: sim.

4) quais critérios?
r.: todos onde tem dados.

5) em quais campos?
r.: da coluna B até a coluna M.

Você perceberá que já deixei montado para fazer a macro com o filtro avançado.

coloco também a macro que estou usando atualmente:

Sub Macro1()
        Range("B12:M24").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("B7:M8"), Unique:=False
End Sub

Obrigado!

 
Postado : 08/01/2015 7:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Bom eu ainda não entendi direito, mas caso o código abaixo não responda completamente, ao menos servirá de inspiração!

Public Sub FiltrarPorData()
    Dim lngStart As Long, lngEnd As Long
    Dim dateRange As Range, dateRange2 As Range, RngCrt As Range
    lngStart = Range("B8").Value
    lngEnd = Range("C8").Value
    Set dateRange = Range("B13:B20000")
    Set dateRange2 = Range("E13:E20000")
    
        dateRange.Autofilter field:=1, _
            Criteria1:=">=" & lngStart, _
            Operator:=xlAnd, _
            Criteria2:="<=" & lngEnd
        Call FiltrarOutrosCampos
               
End Sub
Sub FiltrarOutrosCampos()

Dim rCrit1 As Range, rCrit2 As Range, rCrit3 As Range, rRng1 As Range, rRng2 As Range

With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

Set rCrit1 = Range("E8")
Set rCrit2 = Range("F8")


Set rRng1 = Range("B12:M2300")
Set rRng2 = Range("B13:M2300")

With rRng1
    .Autofilter field:=4, Criteria1:=rCrit1.Value, Operator:=xlOr
    .Autofilter field:=5, Criteria1:=rCrit2.Value
    'rRng2.SpecialCells(xlCellTypeVisible).EntireRow.Copy 'Caso queira copiar os dados
    '.Autofilter 'Caso queira desativar as setas do filtro
End With

With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With

End Sub

Att

 
Postado : 08/01/2015 11:54 am
(@juliowd)
Posts: 0
New Member
Topic starter
 

Oi. Alexandre, agradeço demais a tentativa.
Resolvi por outro método.
Acabei não alterando a macro, e sim a posição dos dados.
Mas valeu, mesmo assim.

Um abraço, e até logo!

 
Postado : 08/01/2015 3:33 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Que bom que resolveu de alguma forma, obrigado pelo retorno!

Att

 
Postado : 08/01/2015 3:54 pm