Somme de cellule de durée

Bonjour à tous,

J'ai des cellule qui se présentent de cette façon :

A1 : 1 Hour 5 Min 0 Sec

A2 : 3 Min 56 Sec

A3 : 3 Sec

Je souhaite en A4 pouvoir calculer la durée cumulée, soit par rapport à l'exemple :

A4 : 1:08:59

Le format a son importance car je dois rentrer les futures durée cumulées dans un graphique.

Tout cela, je dois le faire via une macro en VBA.

Je vous remercie par avance de l'aide que vous pourrez m'apporter.

Bonsoir,

Il t'appartient de fournir les cellules exemples (dans un fichier, s'entend !)

Cordialement.

Bonjour,

Je vous joint un fichier exemple pour vous montrer ma problématique.

Merci

17fichier.xlsx (10.27 Ko)

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.

Rechercher des sujets similaires à "somme duree"