Notifications
Clear all

ListView Busca por período de datas

12 Posts
3 Usuários
5 Reactions
1,672 Visualizações
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Bom dia feras.

Na planilha em anexo, os campos "Morador, Apto, Bloco e Data", esta filtrando beleza e os Checkbox 1 e 2 mostram corretamente após as buscas.

Agora criei uma busca por período, "data inicial e data final". Preciso o mesmo critério acima para essa busca por período inclusive a função das Checkbox.

 
Postado : 09/10/2020 11:52 am
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

@anderson

Não funcionou com o 5 no lugar do 10, a lista ficou vazia. 

O que mais preciso é a data da coluna 5.

Este post foi modificado 4 anos atrás por Dunguinha
 
Postado : 09/10/2020 9:56 pm
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

@dunguinha coisas de excel, dificil, mas as vezes acontecem, na sua planilha veja que a coluna 5 está formatada como Data mas no Filtro estão como texto, então edite cada valor com F2 e Enter e rode o formulário novamente e verá que vai funcionar corretamente.

 
Postado : 10/10/2020 3:19 am
Dunguinha reacted
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

@dunguinha aproveitando a rotina do colega Anderson, modifiquei para ser efetuado a pesquisa sem utilizar o Filtro, com essa você não precisa alterar os dados da coluna 5, apesar que eu acho importante pois poderá te causar problemas com algum outro tipo de referencia as datas mais tarde, e mesmo alterando as datas essa rotina tambem funcionará. Adicione um Segundo Botão (BotaoFiltro2) e faça os testes com as duas rotinas e veja qual lhe convem mais em questão de tempo.

Private Sub BotaoFiltro2_Click()
If IsDate(Me.txtDataInicial.Text) Then

If IsDate(Me.txtDataFinal.Text) Then
Dim dataInicial As Date
dataInicial = CDate(Me.txtDataInicial.Text)
Dim dataFinal As Date
dataFinal = CDate(Me.txtDataFinal.Text)

'Variáveis recebendo o valor dos campos
morador = Me.TextBox1.Value

'Limpando os dados da Listview antes de exibir a filtragem
ListView1.ListItems.Clear

'Adiciona os dados a listview
Sheets("Banco_Dados").Select

lin = 2

Do Until Sheets("Banco_Dados").Cells(lin, 1) = ""

If Sheets("Banco_Dados").Cells(lin, 5) >= CDate(txtDataInicial) And _
Sheets("Banco_Dados").Cells(lin, 5) <= CDate(txtDataFinal) Then

Set li = ListView1.ListItems.Add(Text:=Sheets("Banco_Dados").Cells(lin, 1).Value) 'Cod
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 1).Value 'morador
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 2).Value 'Canal
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 3).Value 'morador
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 4).Value 'Canal
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 5).Value 'morador
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 6).Value 'Canal
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 7).Value 'morador
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 8).Value 'Canal
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 9).Value 'morador
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 10).Value 'Canal
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 11).Value 'morador
li.ListSubItems.Add Text:=Sheets("Banco_Dados").Cells(lin, 12).Value 'morador
End If

lin = lin + 1

Loop

Dim colunas As Integer
Dim linhas As Integer
Dim contador As Integer
Dim UserForm1
Dim x

On Error Resume Next

With UserForm1

colunas = ListView1.ColumnHeaders.Count
linhas = ListView1.ListItems.Count

For i = 1 To linhas

If ListView1.ListItems(i).ListSubItems(10) <> "" Then
ListView1.ListItems(i).ForeColor = RGB(199, 0, 0)
contador = contador + 1

For x = 1 To colunas - 1
ListView1.ListItems(i).ListSubItems(x).ForeColor = RGB(199, 0, 0)
Label7.Caption = contador & " Correspondências Retiradas"

Next
End If
Next
End With

Call Icones

End If
End If
End Sub

 

[]s

Mauro Coutinho

 
Postado : 10/10/2020 3:31 am
Dunguinha reacted
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Bom dia pessoal.

Coutinho fiz o que disse com F2 e Enter e mesmo assim não rolou. O código que disponibilizou funcionou mas inibe a função do filtro das Checkbox 1 e 2. Estranho porque a coluna 5 e a 10 pelo que vejo na planilha estão ambas formatadas para data. Como pode funcionar para coluna 10 e na 5 não?

 
Postado : 10/10/2020 7:51 am
(@anderson)
Posts: 203
Reputable Member
 

@dunguinha

Anexo

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 10/10/2020 8:08 am
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

@anderson

Valeu Anderson, mas me conta o que tu fez?

Se eu pegar esse código e colar na planilha principal que estou desenvolvendo não funciona.

 
Postado : 10/10/2020 8:45 am
(@anderson)
Posts: 203
Reputable Member
 

F2 e Enter 

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 10/10/2020 8:50 am
(@anderson)
Posts: 203
Reputable Member
 
Private Sub Workbook_Open()
Dim linha As Long
linha = 2
While Sheets("Banco_Dados").Range("A" & linha).Value <> ""

If Sheets("Banco_Dados").Range("E" & linha).Value <> "" Then
Sheets("Banco_Dados").Range("E" & linha).Value = CDate(Sheets("Banco_Dados").Range("E" & linha).Value)
End If

If Sheets("Banco_Dados").Range("J" & linha).Value <> "" Then
Sheets("Banco_Dados").Range("J" & linha).Value = CDate(Sheets("Banco_Dados").Range("J" & linha).Value)
End If
linha = linha + 1


Wend
End Sub

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 10/10/2020 9:02 am
Dunguinha reacted
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Agora sim entendi.

Obrigado mais uma vez Anderson e Coutinho.

 
Postado : 10/10/2020 9:34 am
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

@dunguinha no primeiro modelo que enviou funcionou das duas formas, tanto editando a coluna e ajustando os valores quanto a rotina que implementei. Sobre o seu original, com certeza esta tendo algum problema com a formatação e o filtro não está reconhecendo, apesar que o colega Anderson já postou uma solução, teste para ver se da certo.

de fato, quanto aos checkbox não mexi, me atentei mais a questão do filtro entre as datas e já eram 03 da matina rsrsr.

Hoje não sei se vai ter como, mas pelo que vi, o novo modelo do Anderson está funcionando perfeitamente.

Qualquer coisa escreva.

bom final de semana e feriado.

Este post foi modificado 4 anos atrás por Mauro Coutinho
 
Postado : 10/10/2020 9:44 am
LaerteB and Dunguinha reacted
(@dunguinha)
Posts: 61
Trusted Member
Topic starter
 

Valeu Coutinho, imagino o empenho de cada um em ajudar. Eu também tem dia que nem durmo tentando. Quando recorro ao fórum é que já se esgotaram minhas tentativas.

Não manjo muito de VBA mas dou umas cacetadas que funcionam de vez em quando, rsrs.

Abraços.

 
Postado : 10/10/2020 10:00 am