Notifications
Clear all

Intervalo de datas com Citério em For

4 Posts
2 Usuários
0 Reactions
923 Visualizações
selmo
(@selmo)
Posts: 236
Estimable Member
Topic starter
 

Olá galera, boa noite.
Em uma certa planilha tenho um total de nada menos de 8000 registros, e pretendia usar um listview em um form para carregar as informações, oque com essa quantidade de dados será completamente inviavel pelo tempo de load do formulário, acrescentei um filtro ao carregar o form, então carrega apenas a data especifica, oque faz com que carregue instantaneamente. Só que para tal gostaria de carregar os dados de um intervalo de pelo menos duas semanas anteriores a data atual, isso sempre que carregasse. Só que não sei exatamente como utilizar esse intervalo de datas na condição For do form :/

ListView1.ListItems.Clear
Set ws = Sheets("PLAN1")
linhafinal = ws.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To linhafinal

transp = ws.Cells(i, 6).Text
Select Case transp

Case "BMG"
        cor = &H8000000D
        
    Case "MÁXIMA"
        cor = &HFF&
        
    Case "RODONAVES"
        cor = &H4000&
        
    Case Else
        cor = &H0&
        
End Select

If ws.Range("A" & i) = CDate(TxtFiltro.Text) Then
Set Item = ListView1.ListItems.Add(Text:=ws.Cells(i, 1))
Item.SubItems(1) = ws.Cells(i, 2)
Item.ListSubItems(1).ForeColor = cor
Item.SubItems(2) = ws.Cells(i, 3)
Item.ListSubItems(2).ForeColor = cor
Item.SubItems(3) = ws.Cells(i, 4)
Item.ListSubItems(3).ForeColor = cor
Item.SubItems(4) = ws.Cells(i, 5)
Item.ListSubItems(4).ForeColor = cor
Item.SubItems(5) = ws.Cells(i, 6)
Item.ListSubItems(5).ForeColor = cor
Item.SubItems(6) = ws.Cells(i, 7)
Item.ListSubItems(6).ForeColor = cor
Contador = Contador + 1
End If
Next

End Sub

Esse código só carrega a data da textbox, mas queria carregar tudo dentro de um prazo de 14 dias, ajuda?

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 16/12/2014 4:14 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente:
If ws.Range("A" & i) >= CDate(TxtFiltro.Text)-14 Then

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

 
Postado : 17/12/2014 8:00 am
selmo
(@selmo)
Posts: 236
Estimable Member
Topic starter
 

Realmente, era algo simples mas que não havia pensado. Valeu.
Só algo que esta dando erro. Em uma label estou exibindo a data inicial e data final da listview, mas ao tentar o mesmo procedimento para ela l LblDataIni.caption = TxtFiltro.Text -14 da erro de incompatibilidade, saberia me explicar porque ocorre?

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 20/12/2014 4:41 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

o "retorno" de um valor em uma textbox é, por definição, uma string(texto); e o sistema não consegue efetuar operações matemáticas com texto, gerando erro de inconpatibilidade de dado; é necessário efetuar antes uma conversão de valores.
Se em sua textbox e esperado retornar uma data, então deve utilizar a função de conversão CDATE --> cdate(suastringdedata)

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

 
Postado : 20/12/2014 7:01 am