Ir ao conteúdo
  • Cadastre-se

Excel Filtro Avançado x Macro


Posts recomendados

no intervalo de critérios coloque as datas no formato Geral
1/1/18 ~~~> corresponde a ~~~> 43101
15/1/18 ~~~> corresponde a ~~~> 43115

 

coloque

em T2 ~~~> =">"&43101
em U2 ~~~> ="<="&43115

 

alternativa:
em T3 ~~~> 1/1/18
em U3 ~~~> 15/1/18
em T2 ~~~>=">"&T3
em U2 ~~~> ="<="&U3

 

obs.

Range("D12").Select ~~~> esta linha que está no seu código é desnecessária

Link para o comentário
Compartilhar em outros sites

Amigo, obrigado pela resposta, porém, gostaria de uma solução em que as datas informadas aparecessem nos locais apropriados (T2 e U2), e no formato de data. Se for apenas 1 campo de data funciona, porém com os 2 campos, somente se feito através dos comandos manuais.

 

No aguardo, agradeço.

Link para o comentário
Compartilhar em outros sites

Boa tarde, @Joseph2018

 

Tente as seguintes adições à sua macro:

 

Sub mcrConsultar()
   Dim CO As Variant              'Guarda os Critérios Originais para repô-los ao final
   Dim d1 As String, d2 As String 'd1 e d2 = Data sem comparador
   Dim r1 As String, r2 As String 'r1 e r2 = comparadores relacionais de T2 e U2
   CO = Array([T2].Value, [U2].Value)
   d1 = Replace(Replace(Replace(CO(0), ">", ""), "<", ""), "=", ""): r1 = Replace(CO(0), d1, "")
   d2 = Replace(Replace(Replace(CO(1), ">", ""), "<", ""), "=", ""): r2 = Replace(CO(1), d2, "")
   Application.ScreenUpdating = False
     If IsDate(d1) Then [T2].Value = r1 & Format(d1, "mm/dd/yyyy")
     If IsDate(d2) Then [U2].Value = r2 & Format(d2, "mm/dd/yyyy")
     Columns("A:J").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "N1:U2"), CopyToRange:=Range("N9:T9"), Unique:=False
     Range("T2:U2").Value = CO
   Application.ScreenUpdating = True
End Sub

 

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Joseph2018 disse:

... gostaria de uma solução em que as datas informadas aparecessem nos locais apropriados (T2 e U2), e no formato de data.

Com o seu código VBA atual não é possível. Experimente com o código que o Edson sugeriu.

Como alternativas você pode inserir a data no formato mm/dd/aaaa. Aí funciona com o seu código.

Outra possibilidade é instalar um novo código no módulo da planilha para transformar a data inserida como dd/mm/aaaa em mm/dd/aaaa.

 

Se for apenas 1 campo de data funciona, ...

Depende! Coloque somente a data <=15/01/2018 e veja se funciona :P

 

Link para o comentário
Compartilhar em outros sites

Prezado Edson: 

 

Fantástico. Você é o cara. Tentei entender o código, mas só consegui fazê-lo superficialmente. Funcionou perfeitamente. 

 

Certamente conseguirei adaptá-lo a situações futuras. MUITO OBRIGADO!!!

adicionado 9 minutos depois
18 horas atrás, osvaldomp disse:

 

Prezado Osvaldo, muito obrigado pela ajuda e encaminhamento da solução. O código fornecido pelo Edson Branco funcionou perfeitamente. Muto obrigado.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...