comparer des heures

C

ChTi'160

Guest
ma question
Bonsoir Le "FORUM"
c'est à pas feutrés que je viens poser ma question
je veux pour remplir un tableau comparer des heures sans les minutes
exemple
en Col A -------------- Col B
00:05:45 -------------- 10
00:05:55 -------------- 20
00:06:10 -------------- 05
00:06:23 -------------- 09
00:06:34 -------------- 10
je veux pouvoir récupérer dans mon tableau
for i = 1 to N
tab(i,1) tab(i,2) 'somme des heures =5
05 ------- 30
tab(i+1) tab(i+1,2) 'somme des heures =6
06 ------- 24
je n'arrive pas à tester les heures entre elles
ex comparer 05 de 00:05:45 avec 00:05:55 pour faire la somme des somme correspondantes
Merci d'avance
A+++
Jean marie
 
C

ChTi'160

Guest
re
sera ce plus clair je ne sais pas
Public Sub recupSommeHeure()
Dim TabDataheure As Variant
Dim TabTemp As Variant
Dim derlgn As Long
Dim L As Long
Dim L2 As Long
Dim c As Long
Dim nombre As Single

With Worksheets("Feuil1")
derlgn = .Range("C65536").End(xlUp).Row
TabDataheure = .Range(.Cells(1, 1), .Cells(derlgn, 6)).Value
End With
For L = 2 To UBound(TabDataheure, 1)
For L2 = L + 1 To UBound(TabDataheure, 1)

ReDim TabTemp(L, 6)
'Ici je voudrais comparer les heures de la colonne C entre elles
' obtenir if 05 = 05 then
If Mid(TabDataheure(L, 3), InStr(1, TabDataheure(L, 3), ":") - 1, Len(TabDataheure(L, 3)) - InStr(1, TabDataheure(L, 3), ":")) = Mid(TabDataheure(L2, 3), InStr(1, TabDataheure(L2, 3), ":") - 1, Len(TabDataheure(L2, 3)) - InStr(1, TabDataheure(L2, 3), ":"))Then
'TabTemp(L, 1) = TabDataheure(L, 1) + TabDataheure(L2, 1)
TabTemp(L, 2) = TabDataheure(L, 2)
TabTemp(L, 3) = TabDataheure(L, 3) + TabDataheure(L2, 3)
TabTemp(L, 4) = TabDataheure(L, 4) + TabDataheure(L2, 4)
TabTemp(L, 5) = TabDataheure(L, 5) + TabDataheure(L2, 5)
'TabTemp(L, 6) = TabTemp(L, 5) / TabTemp(L, 1)

End If
Next
Next
A Bientot
Jean Marie
 
M

myDearFriend

Guest
Bonsoir Chti160,


Ci-joint peut être une solution :

Public Sub SommeAvecHeure()
Dim TabTemp As Variant
Dim L As Long, L2 As Long
Dim V As Byte
   'Charge les données dans un tableau variant temporaire
   With ActiveSheet
      L = .Range("A65536").End(xlUp).Row
      TabTemp = .Range(.Cells(1, 1), .Cells(L, 2)).Value
      'Procède aux cumuls souhaités
      For L = 1 To UBound(TabTemp, 1)
         V = Minute(TabTemp(L, 1))
         If V > 0 Then
            For L2 = L + 1 To UBound(TabTemp, 1)
               If Minute(TabTemp(L2, 1)) = V Then
                  TabTemp(L2, 1) = TimeValue("00:00:00")
                  TabTemp(L, 2) = TabTemp(L, 2) + TabTemp(L2, 2)
               End If
            Next L2
         End If
      Next L
      'Affiche les résultats obtenus
      L2 = 0
      For L = 1 To UBound(TabTemp, 1)
         If Minute(TabTemp(L, 1)) > 0 Then
            L2 = L2 + 1
            .Cells(L2, 5) = Minute(TabTemp(L, 1))
            .Cells(L2, 6) = TabTemp(L, 2)
         End If
      Next L
   End With
End Sub


Cordialement.

Didier_mDF
myDearFriend-3.gif
 

Pièces jointes

  • PourChti.zip
    12.7 KB · Affichages: 13

Discussions similaires

Réponses
5
Affichages
566

Statistiques des forums

Discussions
312 390
Messages
2 087 938
Membres
103 679
dernier inscrit
yprivey3