Notifications
Clear all

FILTRAR DADOS

10 Posts
3 Usuários
0 Reactions
2,131 Visualizações
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Bom dia galera
Tenho uma planilha que contem diversas informações referentes a contas
Gostaria que ao clicar no botão FILTRAR eu digitasse o intervalo entre duas datas e ele filtrasse a informação nos dados (algo semelhante ao que acontece quando vamos em Dados->Filtro)

E se possivel ao clicar no botão LIMPAR ele retirasse o filtro

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 19/03/2018 10:02 am
(@klarc28)
Posts: 971
Prominent Member
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Esta questão já não foi resolvida em seu tópico anterior ?

RELATÓRIO POR DATAS
Mensagempor gfsouza86 » 09 Mar 2018, 09:58

RELATÓRIO POR DATAS [Resolvido]
viewtopic.php?f=10&t=27637

No modelo que anexei tem opção por imputbox e fomulário, não entendi a dúvida, e se não estava resolvido, não deveria seta-lo como tal e continuar a postagem no mesmo topico em vez de abrir outro sobre o mesmo assunto.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/03/2018 8:12 pm
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Mauro Coutinho nesse tópico que você citou realmente você sanou minha duvida, porem eu gostaria de filtrar diretamente na base as informações
Por exemplo, realizei diversos cadastros no mês de março, e agora quero filtrar na base apenas os que foram feitos entre os dias 01/03 e 05/03

A ideia de filtrar diretamente na base é para realizar alguma alteração nesses dados e após isso apenas limpar o filtro e continuar na base, se ter que copiar para outro lugar e depois copiar desse lugar novamente para colar na base

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 20/03/2018 8:48 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O código base levando em conta o exemplo que enviei é este, veja se consegue ajustar:

Sub FiltrarEntreDatas()
    Dim DataIni    As Date
    Dim dataFim    As Date
    
    DataIni = InputBox("Digite a data Inicial")
    dataFim = InputBox("Digite a data Final")

    IniDate = Format(DataIni, "mm/dd/yyyy")
    EndDate = Format(dataFim, "mm/dd/yyyy")
 
    Range("A1:C1").AutoFilter field:=2, Criteria1:=">=" & IniDate, Operator:=xlAnd, Criteria2:="<=" & EndDate

End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/03/2018 1:37 pm
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Mauro Coutinho funcionou perfeitamente o código e consegui fazer um botão para limpar o filtro

Mais uma pergunta

Teria como fazer algo parecido com esse exemplo https://www.youtube.com/watch?v=Il7zjilg1_Y
Ou seja, sem aparecer as "setinhas" do filtro?

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 21/03/2018 6:51 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

souza, agora está um pouco corrido, mas pesquise por : "autofilter Visibledropdown" e encontrará algumas formas de se utilizar, por exemplo nesta linha do filtro, ocultamos a seta do campo 2, teria de fazer um loop nas colunas :

Range("A1:C1").AutoFilter Field:=2, Criteria1:=">=" & IniDate, Operator:=xlAnd, Criteria2:="<=" & EndDate, VisibleDropDown:=False

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/03/2018 7:49 am
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Bom dia
É exatamente isso que gostaria de fazer
Só resta saber como fazer o loop para as demais colunas

Vou procurar aqui!

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 22/03/2018 7:34 am
(@gfsouza86)
Posts: 0
Trusted Member
Topic starter
 

Mauro Coutinho
Eu consegui fazer dessa forma

    
Dim DataIni    As Date
Dim dataFim    As Date
    
DataIni = InputBox("Digite a data Inicial")
dataFim = InputBox("Digite a data Final")

IniDate = Format(DataIni, "mm/dd/yyyy")
EndDate = Format(dataFim, "mm/dd/yyyy")

With Range("A5:k5")
.AutoFilter Field:=1, Visibledropdown:=False
.AutoFilter Field:=2, Visibledropdown:=False, Criteria1:=">=" & IniDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
.AutoFilter Field:=3, Visibledropdown:=False
.AutoFilter Field:=4, Visibledropdown:=False
.AutoFilter Field:=5, Visibledropdown:=False
.AutoFilter Field:=6, Visibledropdown:=False
.AutoFilter Field:=7, Visibledropdown:=False
.AutoFilter Field:=8, Visibledropdown:=False
.AutoFilter Field:=9, Visibledropdown:=False
.AutoFilter Field:=10, Visibledropdown:=False
.AutoFilter Field:=11, Visibledropdown:=False
End With

Porem ele fica muito lento para filtrar
Teria como "agilizar" (deixar mais rápido) esse código?

G@b®!eL

Se a resposta foi útil para você, por gentileza, clique na mãozinha ao lado direito da sua tela no canto superior.

 
Postado : 22/03/2018 12:03 pm
(@klarc28)
Posts: 971
Prominent Member
 
Dim DataIni    As Date
Dim dataFim    As Date
    
DataIni = InputBox("Digite a data Inicial")
dataFim = InputBox("Digite a data Final")

IniDate = Format(DataIni, "mm/dd/yyyy")
EndDate = Format(dataFim, "mm/dd/yyyy")
application.screenupdating = false
With Range("A5:k5")
.AutoFilter Field:=1, Visibledropdown:=False
.AutoFilter Field:=2, Visibledropdown:=False, Criteria1:=">=" & IniDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
.AutoFilter Field:=3, Visibledropdown:=False
.AutoFilter Field:=4, Visibledropdown:=False
.AutoFilter Field:=5, Visibledropdown:=False
.AutoFilter Field:=6, Visibledropdown:=False
.AutoFilter Field:=7, Visibledropdown:=False
.AutoFilter Field:=8, Visibledropdown:=False
.AutoFilter Field:=9, Visibledropdown:=False
.AutoFilter Field:=10, Visibledropdown:=False
.AutoFilter Field:=11, Visibledropdown:=False
End With
application.screenupdating = true
 
Postado : 22/03/2018 9:16 pm