Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Criei um formulário que possue uma listview que soma as horas no formato hh:mm e está funcionando em parte o código, pois somente soma até 23:00 horas. Exemplo:
1 - 8:00
2 - 8:00
3 - 8:00
Total = 00:00
Portanto, quando o valor atinge 24:00 horas o sistema exibe 00:00 e se for maior que 24:00 horas ele não soma o valor 24:00 e sim o que excedeu as 24:00 horas. Veja o código completo:
Função SomaHora
>
Function SomaHora() As String
Dim X As Long
Dim total As Double
For X = 1 To ListViewHora_Extra.ListItems.Count
total = (total + TimeValue(ListViewHora_Extra.ListItems(X).SubItems(6)))
Next X
SomaHora = Format(total, "hh:mm")
End Function
Resultado da Soma:
Text1.Text = Format(TimeValue(SomaHora), "hh:mm")
Alguem pode me ajudar.
Alissong
Escorpio,
Ficou legal, muito obrigado pela ajuda........
Um abraço.
Alissong
Ve se assim funciona como você quer. Só acrecsentei algumas coisas no seu código
Function SomaHora() As String
Dim X As Long
Dim total, horas As Double
For X = 0 To List1.ListCount - 1
total = total + TimeValue(List1.List(X))
Next X
horas = Int(total)
horas = horas * 24
restohora = Format(total, "hh:mm")
horas = Mid(restohora, 1, InStr(1, restohora, ":") - 1) + horas
totalhoras = horas & Mid(restohora, InStr(1, restohora, ":"), Len(restohora))
SomaHora = totalhoras
End Function
Desse jeito ai, por exemplo, se tiver 8:00 + 8:00 + 8:00 fica 24:00
Flw