Monsieur Excel
Pour tout savoir faire sur Excel !

03 février 2011

Un calcul d’écart de temps

Le problème à résoudre est le suivant : vous disposez en colonne A d’une date de début et en colonne B de données concernant une heure de début et une heure de fin de travail, éventuellement le lendemain, sachant que la période de travail ne peut dépasser 18 heures.

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.


1 Commentaire(s):

  • La même en un peu moins...indigeste :

    Public 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 ! :)))

    By Anonymous cduigou, sur 10:49 PM  

Enregistrer un commentaire

<< Accueil