Bonsoir,
Au vu de tes textes-temps, j'ai opté quasiment tout de suite pour une fonction de conversion personnalisée.
Mais j'ai eu ensuite quelque hésitation ! S'agissant de somme, j'ai spontanément commencé par une fonctions réalisant la somme de valeurs du type que tu proposes (fonction SOMMECTMPS), mais en fait tu fais un calcul selon un critère supplémentaire, ce qu'habituellement on formule avec SOMMEPROD (ou SOMME.SI.ENS).
Et j'ai donc généré à partir de la première une version de conversion individuelle (fonction CTMPS), seulement elle ne fonctionne pas en version matricielle...
Donc dans la perspective d'une utilisation conjointe avec SOMMEPROD j'ai généré une 3e version renvoyant une matrice (fonction CPLGTMPS).
Function CPLGTMPS(Plg As Range)
Dim Tps$, n%, k%, i%, h%, m%, s%, TT()
TT = Plg.Value
For n = 1 To UBound(TT, 1)
For k = 1 To UBound(TT, 2)
Tps = TT(n, k)
i = InStr(1, Tps, "Hour")
h = IIf(i > 0, Val(Tps), 0)
If i > 0 Then Tps = Right(Tps, Len(Tps) - i - 3)
i = InStr(1, Tps, "Min")
m = IIf(i > 0, Val(Tps), 0)
If i > 0 Then Tps = Right(Tps, Len(Tps) - i - 2)
i = InStr(1, Tps, "Sec")
s = IIf(i > 0, Val(Tps), 0)
TT(n, k) = TimeSerial(h, m, s)
Next k
Next n
CPLGTMPS = TT
End Function
Utilisation dans ton cas :
=SOMMEPROD(($A$3:$A$13=A16)*CPLGTMPS($B$3:$B$13))
J'ai laissé les trois fonctions dans le fichier...
Cordialement.