Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Auto filtro em campo data usando VBA[RESOLVIDO]
-
- Acabou de chegar
- Mensagens: 7
- Registrado em: Qua Nov 16, 2011 3:49 pm
Auto filtro em campo data usando VBA[RESOLVIDO]
Pessoal, estou com problema ao tentar realizar um autofiltro em uma coluna de datas utilizando o VBA.
O problema é o seguinte: eu passo o valor de um objeto DTPicker para uma variável, esse valor eu u uso para realizar um autofiltro em uma coluna de datas porém ocorre que quando o dia na variável é menor do que 12, ou seja, está entre os valores de jan à dez, o excel inverte o dia com o mês como se fosse data americana e não realiza o filtro, porém quando o dia é igual ou maior que 12, ai o excel até coloca o filtro da forma correta, mas mesmo assim não faz o filtro, mostra como se não tivesse encontrado nada e eu preciso entrar na planilha, abrir o filtro e simplesmente clicar em OK que funciona.
Não sei se fui claro, mas se alguém já passou por isso ou sabe como me ajudar por favor socorro, rs, já perdi quase um dia inteiro tentando todas as alternativas possíveis e nada.
Abaixo segue o pedaço do código onde eu tento realizar o filtro, as variáveis estão declaradas como tipo date:
ActiveSheet.Range("$A$1:$AV$" & dblLastRowFiltro).AutoFilter Field:=48, Criteria1:= _
">=" & Format(dtInicio, "dd/mm/yyyy"), Operator:=xlAnd, Criteria2:=" <= " & Format(dtFim, "dd/mm/YYYY")
Muito obrigado.
O problema é o seguinte: eu passo o valor de um objeto DTPicker para uma variável, esse valor eu u uso para realizar um autofiltro em uma coluna de datas porém ocorre que quando o dia na variável é menor do que 12, ou seja, está entre os valores de jan à dez, o excel inverte o dia com o mês como se fosse data americana e não realiza o filtro, porém quando o dia é igual ou maior que 12, ai o excel até coloca o filtro da forma correta, mas mesmo assim não faz o filtro, mostra como se não tivesse encontrado nada e eu preciso entrar na planilha, abrir o filtro e simplesmente clicar em OK que funciona.
Não sei se fui claro, mas se alguém já passou por isso ou sabe como me ajudar por favor socorro, rs, já perdi quase um dia inteiro tentando todas as alternativas possíveis e nada.
Abaixo segue o pedaço do código onde eu tento realizar o filtro, as variáveis estão declaradas como tipo date:
ActiveSheet.Range("$A$1:$AV$" & dblLastRowFiltro).AutoFilter Field:=48, Criteria1:= _
">=" & Format(dtInicio, "dd/mm/yyyy"), Operator:=xlAnd, Criteria2:=" <= " & Format(dtFim, "dd/mm/YYYY")
Muito obrigado.
Editado pela última vez por GustavoShk em Seg Jan 30, 2012 9:44 am, em um total de 1 vez.
-
- Acabou de chegar
- Mensagens: 7
- Registrado em: Qua Nov 16, 2011 3:49 pm
Re: Auto filtro em campo data usando VBA
Oi José, já tentei a CDate e mesmo assim ela inverte as datas, já chequei as configurações regionais do meu micro e estão todas em português, ou seja, não é ali que está invertendo também.joseA escreveu:Tentou usar a função CDate()?
O engraçado é que na janela de verificação o valor aparece correto, mas quando vou checar o filtro feito na planilha as datas aparecem invertidas.
- Mauro Coutinho
- Jedi
- Mensagens: 1561
- Registrado em: Sáb Mar 13, 2010 8:10 pm
- Localização: São José dos Pinhais - Pr
Re: Auto filtro em campo data usando VBA
Gustavo, já tive situações parecidas quanto a inversão de Datas no Excel, ele lida de modo diferenciado, então tente inverter dd/mm por mm/dd :
ActiveSheet.Range("$A$1:$AV$" & dblLastRowFiltro).AutoFilter Field:=48, Criteria1:= _
">=" & Format(dtInicio, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:=" <= " & Format(dtFim, "mm/dd/YYYY")
De uma olhada tambem no link abaixo da ContexTure:
Excel Advanced Filter Introduction
http://www.contextures.com/xladvfilter01.html
Se utilizar a Pesquisa no forum com "inverte a data" encontrara outros tópicos.
[]s
ActiveSheet.Range("$A$1:$AV$" & dblLastRowFiltro).AutoFilter Field:=48, Criteria1:= _
">=" & Format(dtInicio, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:=" <= " & Format(dtFim, "mm/dd/YYYY")
De uma olhada tambem no link abaixo da ContexTure:
Excel Advanced Filter Introduction
http://www.contextures.com/xladvfilter01.html
Se utilizar a Pesquisa no forum com "inverte a data" encontrara outros tópicos.
[]s
Re: Auto filtro em campo data usando VBA
Olá
Use assim
Dim datei As Double
Dim datef As Double
datei = Calendar1.Value
datef = Calendar1.Value + 2
Selection.Clear
ActiveSheet.Range("$a$1:$c$14").AutoFilter Field:=2, _
Criteria1:=">= " & datei, Operator:=xlAnd, Criteria2:="<=" & datef
abs
Eduardo
www.ensinandoexcel.com.br
Use assim
Dim datei As Double
Dim datef As Double
datei = Calendar1.Value
datef = Calendar1.Value + 2
Selection.Clear
ActiveSheet.Range("$a$1:$c$14").AutoFilter Field:=2, _
Criteria1:=">= " & datei, Operator:=xlAnd, Criteria2:="<=" & datef
abs
Eduardo
www.ensinandoexcel.com.br
-
- Acabou de chegar
- Mensagens: 7
- Registrado em: Qua Nov 16, 2011 3:49 pm
[RESPONDIDO] Auto filtro em campo data usando VBA
chamojo escreveu:Olá
Use assim
Dim datei As Double
Dim datef As Double
datei = Calendar1.Value
datef = Calendar1.Value + 2
Selection.Clear
ActiveSheet.Range("$a$1:$c$14").AutoFilter Field:=2, _
Criteria1:=">= " & datei, Operator:=xlAnd, Criteria2:="<=" & datef
abs
Eduardo
http://www.ensinandoexcel.com.br
Ótimo Eduardo, finalmente consegui, muito obrigado mesmo.
Nossa, tão fácil e tão dificil de descobrir, af, rsrs.
Abraço.
Re: Auto filtro em campo data usando VBA[RESOLVIDO]
FALA SERIO !!!!!
ESTOU A DIAS TENTANDO RESOLVER ISSO... JÁ TENTEI TROCENTAS FORMAS DIFERENTES E OLHA SÓ O QUE FUNCIONA !!!!!
1000 PARABÉNS PELA DESCOBERTA E POR COMPARTILHAR !!!!
OBRIGADO ...
PRA QUE NÃO PEGOU A DICA.... A VARIÁVEL DATA TEM QUE SER "DOUBLE".
RESOLVIDO !!!!!!!!
ESTOU A DIAS TENTANDO RESOLVER ISSO... JÁ TENTEI TROCENTAS FORMAS DIFERENTES E OLHA SÓ O QUE FUNCIONA !!!!!
1000 PARABÉNS PELA DESCOBERTA E POR COMPARTILHAR !!!!
OBRIGADO ...
PRA QUE NÃO PEGOU A DICA.... A VARIÁVEL DATA TEM QUE SER "DOUBLE".
RESOLVIDO !!!!!!!!