Function TOTAL(plage As Range)
Dim cel As Range, txt$, h, mn
For Each cel In plage
txt = Replace(cel, " ", "") 'sécurité
If InStr(txt, "h") Then
If Not txt Like "*h*-*h*" Then mn = "" 'détecte les erreurs
txt = Replace(txt, "h", "*60+0")
txt = "-(" & Replace(txt, "-", ")+")
mn = mn + Evaluate(txt) 'évaluation de la formule
End If
Next
h = Int(CDec(mn / 60)) 'heures
mn = mn - h * 60 'minutes
TOTAL = h & "h" & IIf(mn, mn, "")
End Function