Notifications
Clear all

Encontrar a menor e maior data em uma coluna do listview

3 Posts
2 Usuários
0 Reactions
1,241 Visualizações
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Prezados, boa tarde!

No meu projeto, com o auxilio do Mauro, a pesquisa de dados na listview apresenta-me a somatória da coluna que se refere aos valores das programações que atenderem ao critério da pesquisa.

A minha necessidade agora é de, além de pesquisar as programações e visualizar a somatória referida acima, encontrar a menor e maior data da coluna que se refere as previsões de pagamento.

Pretendo apresenta-las em duas label's, sendo:

Label1.caption = "menor data"
Label1.caption = "maior data"

Como farei isto?

 
Postado : 27/04/2014 1:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como não especificou em qual coluna estão as Datas e qual a formato das mesmas, vamos por suposição:

Supondo que as Datas na planilha estão formatadas como Tipo "Data" e estão na Coluna 3 do ListView1, lembrando que no VBA a coluna é iniciada sempre pela "0"(zero).
Uma vez formatadas com o Tipo Data, e lembrando que as Datas no excel são enxergadas como numeros, ou seja o numero "40953" ao ser formatada com o tipo Data é igual a "14/02/2012", então como foi carregado como Data no ListView, para encontrarmos as Datas Maiores e Menores precisamos antes converter em numero, o que é feito pela instrução: "Format(Me.ListView1.ListItems(1).SubItems(2), 0)"

Para encontrar a Maior Data use :

Private Sub cmbMaximo_Click()
    Dim i
    Dim MaxValue
    
    'Converte as Datas em Numeros
    'Supondo que as Datas estão na Coluna 3 do ListView
    MaxValue = Format(Me.ListView1.ListItems(1).SubItems(2), 0)

    With ListView1
        
        For i = 1 To .ListItems.Count
                If Format(.ListItems(i).SubItems(2), 0) > MaxValue Then
                    MaxValue = Format(.ListItems(i).SubItems(2), 0)
                End If
        Next i
    
    End With
    
    MsgBox Format(MaxValue, "DD/MM/YY")

End Sub

E a Menor Data use :

Private Sub cmbMinimo_Click()
    Dim i
    Dim MinValue
    
    'Converte as Datas em Numeros
    'Supondo que as Datas estão na Coluna 3 do ListView
    MinValue = Format(Me.ListView1.ListItems(1).SubItems(2), 0)

    With ListView1
        
        For i = 1 To .ListItems.Count
                If Format(.ListItems(i).SubItems(2), 0) < MinValue Then
                    MinValue = Format(.ListItems(i).SubItems(2), 0)
                End If
        Next i
    
    End With
    
    MsgBox Format(MinValue, "DD/MM/YY")

End Sub

[]s

 
Postado : 27/04/2014 5:48 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Perfeito Mauro!

Novamente deixo os meu agradecimentos!

 
Postado : 27/04/2014 7:13 pm