Notifications
Clear all

Maior valor da Listview

5 Posts
2 Usuários
0 Reactions
1,361 Visualizações
 Luk
(@luk)
Posts: 0
New Member
Topic starter
 

pessoal não sei se estou fazendo certo, peço desculpa caso não seja esta a regra...
mas abri novo tópico porque estou próximo do meu código e preciso muito da ajuda do fórum, Preciso desse código funcionando para finalizar meu projeto:

com este código abaixo consigo carregar a coluna hora, mas não consegui fazer carregar a maior hora da coluna , Exemplo vai ter na coluna varias horas quero quero carregar na textbox a maior hora desta colunar

 Dim i As Integer
  Dim maior As Date

For i = 1 To ListAgenda.ListItems.Count
  If Format(ListAgenda.ListItems(i).SubItems(5), 0) > maior Then
    maior = Format(ListAgenda.ListItems(i).SubItems(5), "hh:mm")
  End If
Next i
txtHoraLivre = Format(TimeValue(maior), "hh:mm")

por favor alguém pode fazer com que este código possa achar a maior hora da coluna..

Atenciosamente,

 
Postado : 13/11/2017 10:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O ideal seria ter mais detalhes, por exemplo, você quer o maior horário, mas não diz como está o formato das mesmas e tambem não cita se as horas vão estar entre o período normal ou irá ultrapassar as 24h, e dependendo do formato "AM ou PM", 01:00 é diferente de 13:00.

Mas você pode estar utilizando as funções Máximo e Minimo, segue um exemplo :

Sub Maximo_Minimo_2()

    Dim Maxnumber As Integer, sRange As Range
    
    Set sRange = Worksheets("Plan1").Range("A1:A10")

    maximo = Application.WorksheetFunction.Max(sRange)
    minimo = Application.WorksheetFunction.Min(sRange)

    MsgBox ("O valor máximo é: " & Format(maximo, "h:mm"))
    MsgBox ("O valor mínimo é: " & Format(minimo, "h:mm"))

End Sub

[]s

 
Postado : 13/11/2017 10:35 am
 Luk
(@luk)
Posts: 0
New Member
Topic starter
 

boa tarde, Mauro! tudo bem?
Estou usando um banco de dados Access,

Acredito que não consigo, referenciar a plan
poderia referenciar somente a listview para fazer o loop e achar o maximo ou minimo???

caso sim como faria?

Dim i As Integer
Dim maior As Date

For i = 1 To ListAgenda.ListItems.Count
If Format(ListAgenda.ListItems(i).SubItems(5), 0) > maior Then
maior = Format(ListAgenda.ListItems(i).SubItems(5), "hh:mm")
End If
Next i
txtHoraLivre = Format(TimeValue(maior), "hh:mm")
 
Postado : 13/11/2017 11:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu não utilizo o Access, mas sei que ele tem função própria para retornar o MAX e MIN, você poderia preencher seu listview normalmente e utilizar a função para retornar direto do BD e tambem com criterios. Funções DMin e DMax - https://support.office.com/pt-br/articl ... 54053d299f

Para percorrer um ListView tente a instrução abaixo, não testado com horas, sei que com valores normais é retornado o Maior

Private Sub CommandButton3_Click()
    Dim L As Double
    Dim Max
    Dim sMax
            
    Max = UserForm1.ListView1.ListItems.Count

    With ListView1
        
        For L = 1 To UserForm1.ListView1.ListItems.Count - 1
            
            sMax = .ListItems(L).SubItems(5)
            
            If sMax > Max Then
                Max = .ListItems(L).SubItems(5)
            End If
            
        Next
        
        MsgBox Max
    End With

End Sub

[]s

 
Postado : 13/11/2017 1:15 pm
 Luk
(@luk)
Posts: 0
New Member
Topic starter
 

Muito Obrigado, fechou!
muito obrigado mesmo!!!

 
Postado : 13/11/2017 2:32 pm