La solution suivante enregistrera en arrière-plan le temps que vous travaillez sur un classeur. Pour ce faire, utilisez l’événement Workbook_Open pour arrêter l’heure de début. La fin du traitement est atteinte lorsque vous fermez à nouveau le fichier. Dans ce cas, profitez de l’événement Workbook_BeforeSave.
Dim LeTemps As Date
Private Sub Workbook_Open()
LeTemps = Format(Now, "dd.mm.yy h:mm:ss")
Sheets("tempstotal").Range("A2").Value = LeTemps
End Sub
Dès que vous quittez le classeur, affichez la feuille de calcul tempstotal masquée, écrivez les entrées dans le tableau, puis masquez à nouveau le tableau. Vous ne remarquerez rien de toute l’action.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim finTemps As Date
Dim DiffTemps As Date
finTemps = Format(Now, "dd.mm.yy h:mm:ss")
DiffTemps = (finTemps - LeTemps)
Application.ScreenUpdating = False
AfficherLaFeuille
Sheets("tempstotal").Select
Range("B2").Value = finTemps
Range("C2").Value = Format(DiffTemps, "h:mm:ss")
Range("A2").Select
Selection.EntireRow.Insert
MasquerLaFeuille
Application.ScreenUpdating = True
End Sub
Les deux macros AfficherLaFeuille et MasquerLaFeuille sont stockées sous un module normal.