L’objectif est de calculer le temps écoulé entre les deux heures indiquées.
On pourrait certes obtenir le résultat sans macro, mais au prix soit de colonnes supplémentaires pour des calculs intermédiaires, soit de formules particulièrement indigestes.
La formule en C2, reproduite vers le bas, est : =heures(B2).
La fonction macro ci-dessus est l’œuvre de David Smart, un expert renommé d’Excel.
La même en un peu moins...indigeste :
RépondreSupprimerPublic Function Heures(ByVal DurationString As String) As Date
Heures = CDate(Split(DurationString, " - ")(1)) - CDate(Split(DurationString, " - ")(0))
If Heures <= 0 Then Heures = Heures + 1
End Function
La fonction Split, manifestement inconnue de Mr. Smart, génère un tableau à deux éléments, indicés 0 et 1, qui permet de séparer facilement l'heure de début (indice 0) de l'heure de fin (indice 1).
Comme quoi on peut être à la fois un "expert renommé Excel" et un rédacteur besogneux en VBA ! :)))