[Word 2010] VBA - chronomètre

wayreth Messages postés 2154 Statut Contributeur -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je suis sous word 2010. Je crée un questionnaire sous word et je voudrais avoir une mesure du temps qu'il faut aux participants pour remplir le questionnaire.

Existe-t-il une possibilité?

D'avance merci,

3 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Tu peux mettre 2 boutons dans ton questionnaire
    un au début avec"Cliquer ici avant de commencer"
    mettre dans le code du bouton a=time
    un à la fin avec" Cliquer quand vous avez fini" et dans le code du bouton :
    b = Time
    aff = a & " " & b
    WordBasic.ViewFooterOnly
    Selection.TypeText Text:=aff
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

    Bien déclarer la variable a dans un Module ainsi : Public a as Date

    Quand l'utilisateur aura cliqué sur le second bouton l'heure de début et l'heure de fin seront affichées dans le pied de page

    Cdlmnt
    0
  2. wayreth
     
    merci pour ta réponse.
    En fait je souhaite que le temps soit compter automatiquement

    Pour le moment j'ai ceci:

    Private Sub Document_Open()
    a = Timer
    End Sub

    Private Sub Document_Close()
    b = Timer
    aff = a & " " & b
    WordBasic.ViewFooterOnly
    Selection.TypeText Text:=aff
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
    End Sub

    A la fermeture, ça m'écrit bien un chiffre en bas de page mais il n'est pas correct...(style 60455,09)

    N'y connaissant rien au VBA...je suis pas dans la merde...toute aide est la bienvenue.
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Declare bien les variables dans un module
      Public a as date
      public b as date
      0
  3. wayreth
     
    J'ai encore changé mon code et essayé ceci:

    Private Sub Document_Open()
    start = Now
    End Sub

    Private Sub Document_Close()
    WordBasic.ViewFooterOnly
    Selection.TypeText "Time now is " & DateDiff(n, start, Now)
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
    End Sub

    sans succès lol
    0
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Sans s'occuper du pied de page :

      chez moi ceci fonctionne
      Private Sub Document_Close()
      b = Time
      Selection.TypeText Text:=Chr(10) & a & " * " & b 'va à la ligne et inscris heure a et heure b
      End Sub

      Private Sub Document_Open()
      a = Time
      End Sub

      Avec dans Module 1 les déclarations :
      Public a As Date
      Public b As Date

      A suivre
      0
    2. wayreth
       
      super merci!

      Sais-tu si l'on peut soustraire ces deux valeurs?
      j'ai essayé le code suivant mais sans succès...je tombe sur 0 à chaque fois...
      Private Sub Document_Open() 
      a = Time 
      End Sub 


      Private Sub Document_Close() 
      b = Time 
      Dim TotalTime As Integer 
      TotalTime = TimeValue(b) - TimeValue(a) 
      WordBasic.ViewFooterOnly 
      Selection.TypeText Text:=TotalTime 
      ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 
      End Sub
      0
    3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Il ne faut pas oublier de declarer les variables dans un module
      Public a as variant
      Public b as variant

      essaye plutôt ainsi
      dans Open
      a=now

      et dans Close
      b = Now
      s = DateDiff("s", a, b)
      m = DateDiff("n", a, b)
      h = DateDiff("n", a, b)
      Total = h & ":" & m & ":" & s
      0
    4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      errata!

      avant dernière ligne il faut bien évidemment lire h=DateDiff("h",a,b)
      0
    5. Wayreth
       
      quand j'essaye ton code je n'ai rien qui s'affiche...
      du coup j'ai changé un peu et j'ai mis ça et ça fonctionne!

      Private Sub Document_Open()
      a = Now
      
      End Sub
      
      Private Sub Document_Close()
      b = Now 
      s = DateDiff("s", a, b) 
      m = DateDiff("n", a, b) 
      h = DateDiff("h", a, b) 
      WordBasic.ViewFooterOnly 
      Selection.TypeText Text:=h & ":" & m & ":" & s 
      ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument


      Merci beaucoup pour ton aide.

      Maintenant les choses se compliquent. J'aimerais qu'il additionne les différents temps d'ouverture...une idée?
      0