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

Auto filtro em campo data usando VBA[RESOLVIDO]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
GustavoShk
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 16, 2011 3:49 pm

Auto filtro em campo data usando VBA[RESOLVIDO]

Mensagem por GustavoShk »

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.
Editado pela última vez por GustavoShk em Seg Jan 30, 2012 9:44 am, em um total de 1 vez.


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
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Auto filtro em campo data usando VBA

Mensagem por joseA »

Tentou usar a função CDate()?


GustavoShk
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 16, 2011 3:49 pm

Re: Auto filtro em campo data usando VBA

Mensagem por GustavoShk »

joseA escreveu:Tentou usar a função CDate()?
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.

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.


Avatar do usuário
Mauro Coutinho
Jedi
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

Mensagem por Mauro Coutinho »

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


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.


chamojo
Colaborador
Colaborador
Mensagens: 20
Registrado em: Ter Jan 10, 2012 12:23 pm
Contato:

Re: Auto filtro em campo data usando VBA

Mensagem por chamojo »

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


GustavoShk
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 16, 2011 3:49 pm

[RESPONDIDO] Auto filtro em campo data usando VBA

Mensagem por GustavoShk »

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.


nflucio
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Ter Jul 19, 2016 4:00 pm

Re: Auto filtro em campo data usando VBA[RESOLVIDO]

Mensagem por nflucio »

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 !!!!!!!!


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