Passer au contenu

Comment comptabiliser le temps passé sur un document ?

Solution : en affichant la durée totale d’ouverture du fichier correspondant.

La commande Fichier/Propriétés de Word 97 affiche une fenêtre regroupant toutes les propriétés du document actif dans le traitement de texte. Une de ces informations se révèle très intéressante. Elle permet de calculer le temps passé sur un document, ou plus précisément la durée totale pendant laquelle le fichier est resté ouvert. Dans le langage VBA (Visual Basic Edition Application), cette donnée est stockée dans ActiveDocument.BuiltInDocumentProperties(13). A l’instar de toutes les autres propriétés, elle est accessible, à tout moment, sur simple demande de l’utilisateur. Dès lors, un petit programme en VBA suffit à faire apparaître le temps passé sur le document actif dans une fenêtre (MsgBox), dans la barre d’état (StatusBar) ou encore en guise de titre de la fenêtre de l’application (Application.Caption). Dans l’exemple, la durée totale d’ouverture s’inscrit dans les barres d’état et de titre, chaque fois que vous exécutez la macro. Afin de remettre la barre de titre dans son état d’origine, un minuteur, exploitant l’horloge interne du PC, égraine 10 secondes avant d’effacer l’inscription. Le compte à rebours est conçu de telle manière qu’il n’empêche pas de continuer à saisir du texte.La seconde macro en VBA (RecherchePropriétés) a pour objectif de vous aider à déterminer le numéro d’index de la propriété de BuiltInDocumentProperties susceptible de vous intéresser. Les résultats de ce programme s’affichent dans la fenêtre d’exécution (commande Affichage/Fenêtre d’exécution de l’éditeur Visual Basic).Listing :
Sub DuréeBarreTitreEtat()
Dim Msg$
Dim DureePause, Debut
Duree = ActiveDocument.BuiltInDocumentProperties(13)
Msg$ = ” Durée totale de travail sur le document : ” & Duree & ” minute”
If Duree <> 1 Then Msg$ = Msg$ + “s”
Application.Caption = Msg$
StatusBar = Msg$
DureePause = 10
Debut = Timer
Do While Timer < Debut + DureePause
DoEvents
Loop
Msg$ = “Microsoft Word”
Application.Caption = Msg$
End Sub


Sub RecherchePropriétés()
Dim Msg$
For i = 1 To 30
Msg$ = ActiveDocument.BuiltInDocumentProperties(i).Name
Msg$ = Msg$ & ” ” & i
Debug.Print Msg$
Next
End Sub

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Filigrane Press