Bonjour le forum,

je travaile actuelle sur une application VBA qui calule des écarts entre deux heures (à l'aide de datediff, timeserial et timevalue). Jusqu'a maintenant je travaillais sur une journée a la fois donc j'utilisais la méthode suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
     If DateDiff("s", date1, date2) < 32767 Then                     'TimeSerial ne peut pas recevoir une valeur superieure a 32767
         diff = TimeSerial(0, 0, DateDiff("s", date1, date2))        'écart en secondes (plus précis mais plus volumineux en chiffres)
     Else
         diff = TimeSerial(0, DateDiff("n", date1, date2), 0)        'écart en minutes
     End If
 
     TpsEtH = TimeValue(TpsEtH) + TimeValue(diff)
ensuite j'affiche sous excel ma variable tpsEtH. Jusqu'ici tout allait bien

Maintenant je souhaite faire la meme chose sur un mois, j'ai donc de fortes chances de dépasser un total de 24 h qui engendre donc des erreurs sur les TimeValue...

j'ai vu que sous excel les additions d'heures sont possibles si on utilise le format [hh]:mm:ss, j'ai donc souhaité réutiliser cette méthode :
TpsEtHmemo = Application.WorksheetFunction.Sum(Format(TpsEtHmemo, "[hh]:mm:ss"), Format(TpsEtH, "[hh]:mm:ss"))

mais j'ai alors l'erreur suivante :Impossible de lire la propriété Sum de la classe WorksheetFunction.

pourtant si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
TpsEtHmemo = Application.WorksheetFunction.Sum(Format(TpsEtHmemo, "hh:mm:ss"), Format(TpsEtH, "hh:mm:ss"))
 
'puis un peu plus loin dans le programme
 
.Cells(i, colTpsH) = CDbl(TpsEtHmemo)
 .Cells(i, colTpsH).NumberFormat = "[hh]:mm:ss;@"
la ca fonctionne mais évidemment il tronque les dates supèrieures a 24h a cause de format...

J'espère avoir été assez clair... Pour résumer je récupère des écarts en heures : 01:02:10, que je souhaite additionner meme si le resultat final dépasse 24h : res= 29:35:12
Je fais peut etre fausse route! Est ce que quelqu'un pourrait me donner une piste pour me remettre en selle?
Merci beaucoup