Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

temps passé sur un fichier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pitchoune

XLDnaute Nouveau
Bonjour,

un petit problème est venu sur ma route, et j'aurai besoin de l'aide des experts...

Voici mon problème :
tout d'abord une synthèse de ma situation : Je travaille dans un bureau d'étude et je suis payer a l'heure. mon travail consiste a faire des métrés. analyser un dossier d'appel d'offre et repartir les quantités ;dimensions des menuiseries extérieurs etc... dans un tableau et le chiffrer.

Pour cela, j'ai besoin de savoir combien de temps je passe sur un dossier avec le détail du jour et de la durée. ( un dossier se caractérisant par un seul fichier excel)

En faite, le temps écouler entre la saisi du numéro de dossier (1er tache) et l'impression (dernière tache)

exemple :
[/LIST]fichier 4001 : 07/09/11 durée 5heure ; 08/09/11 durée 3heures

Je n'est pas d'idée de présentation, je pensais à une fenêtre userform qui s'ouvre a l'ouverture.

J'espere avoir été claire... !

Je vous remercie de votre aide.
 
Re : temps passé sur un fichier

Bonjour à tous,
Bienvenue sur XLD,

Tu as XL 2007 et tu utilises, peut-être, Outlook 2007...
Tu as une possibilité de comptabiliser le temps d'ouverture des fichiers XL avec Outlook

A + à tous
 
Re : temps passé sur un fichier

Bonjour Pitchoune, Jean-Claude

Ce que tu demandes est assez simple à faire.

Sur une feuille Excel, tu crées tes dossiers en lignes puis un ctrl+; et Ctrl+: pour avoir la date et l'heure sur la ligne de la tâche à chaque fois que tu commences ou finit une tâche.
Tu ajoutes un décomptes des heures entre chaque début et fin et un total à la fin et voila, c'est pas plus difficile 🙂.
 
Re : temps passé sur un fichier

Bonjour,

Juste une première piste. A voir pour le stockage des valeurs mais il faut passer par VBA. Pour le test, crée un nouveau classeur, mets le code ci-dessous dans le module du classeur (ThisWorkbook), enregistre, ferme et réouvre le classeur, attend un certain temps puis ferme le classeur, un message t'indiquera le temps qu'il est resté ouvert.
Maintenant, il te faut voir comment exploiter ces valeurs.
Code:
Dim T_Debut As Single
Dim T_Fin As Single
Dim T_Total As String

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    T_Fin = Timer / 86400
    
    T_Total = Application.WorksheetFunction.Text(T_Fin - T_Debut, "[h]:mm:ss")
    
    MsgBox T_Total
    
End Sub

Private Sub Workbook_Open()

    T_Debut = Timer / 86400

End Sub

Hervé.
 
Re : temps passé sur un fichier

bonjour, et merci de cette aide précieuse .
JCGL, je ne connais pas cette option avec outlook, peut peux m'en dire plus ? (est ce compatible aussi avec windows mail ?)

Hervé, je trouve cette solution très intéressante, cependant est ce possible d'integrer ce code avec un tableau qui repertorie a chaque fermture du fichier, la date est le temps passé ?

j'ai aussi trouvé ce code, mais étant que je suis novice en macro, je ne le comprend pas, pouvez vous me l'expliquez ?

Par défaut Re:temps passé sur classeur

Une possibilité : Stocker la durée d'ouverture jusqu'à fermeture du fichier et la cumuler dans un nom caché

Exemple :
Pour créer le nom et l'initialiser à 0 :
Names.Add 'Durée', 0, False
Ensuite, dans le module de ThisWorkbook :

Private x As Double

Private Sub Workbook_Open()
x = Time
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Names(''Durée'').Value = [Durée] + Time - x
End Sub

Pour récupérer la valeur de ''Durée'' :
MsgBox [Durée]

AV [aaa]
merci D'avance

pitchoune
 
Re : temps passé sur un fichier

Bonjour à tous,

Sous XL 2003... (je n'ai pas XL 2007 ou 2010 sous la main)

  1. Outlook
  2. Outils
  3. Options
  4. Préférences
  5. Contacts
  6. Options du Journal
  7. "Enregistrer aussi les fichiers à partir de"
  8. Cocher XL
A+ à tous
 
Re : temps passé sur un fichier

Bonjour,

Une feuille est dédiée au comptage de temps passé et cette feuille doit se nommer Temps passé. Le code est à mettre dans le module du classeur. Attention malgré tout, si Excel plante, les valeurs ne seront pas enregistrées ou si il y a un couac, la variable T_Debut peut être réinitialisée à 0. Il est possible d'enregistrer cette valeur dans un fichier texte ou dans la base de registre, à voir. Teste et dis ce que tu en pense.
La feuille Temps passé doit avoir comme entêtes en A1 "Date", en B1 "Début", en C1 "Fin", en D1 "Temps passé" et en E1 "Cumul" :
Code:
Dim T_Debut As Single
Dim T_Fin As Single

Private Sub Workbook_Open()
    
    'calcul du temps en fraction
    T_Debut = Timer / 86400

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

   Fermeture
   
End Sub


Sub Fermeture()
    
    Dim Fe As Worksheet
    Dim L As Integer
    
    'la feuille doit s'appeler Temps Passé
    Set Fe = Worksheets("Temps Passé")
    
    'calcul du temps en fraction
    T_Fin = Timer / 86400
    
    With Fe
        
        'première ligne vide
        L = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        
        .Range("A" & L).Value = Date 'date du jour
        .Range("B" & L).Value = T_Debut 'ouverture du classeur
        .Range("C" & L).Value = T_Fin 'fermeture du classeur
        .Range("D" & L).Value = T_Fin - T_Debut 'delta (temps passé)
        .Range("D" & L).NumberFormat = "[h]:mm:ss" 'formatage [h]:mm:ss (plus parlant)
        
    End With
    
    TotalHeures
    
End Sub

Sub TotalHeures()

    Dim Fe As Worksheet
    Dim L As Integer
    Dim I As Integer
    Dim Total As Single
    
    'la feuille doit s'appeler Temps Passé
    Set Fe = Worksheets("Temps Passé")
    
    With Fe
    
        'dernière ligne non vide
        L = .Cells(.Rows.Count, 1).End(xlUp).Row
        
        'début du cumul
        .Range("E2").Value = .Range("D2").Value
        .Range("E2").NumberFormat = "[h]:mm:ss"
        
        'cumule
        For I = 3 To L
        
            .Range("E" & I).Value = .Range("E" & I - 1).Value + .Range("D" & I).Value
            .Range("E" & I).NumberFormat = "[h]:mm:ss"
       
        Next I
        

    End With
    
End Sub

Hervé.
 
Re : temps passé sur un fichier

c'est exactement ca, qu'il me faut sauf qu'il pars de zero a chaque fois et non pas de l'heure qu'il est au moment de l'ouverture? du coup mon cumul est faux car en l'ayant essayer 2 fois 30s j'ai passer 15:28:58 !!!! est il possible de changer ???

Merci , pitchoune
 
Re : temps passé sur un fichier

Re,

La variable "T_Debut" est initialisée à l'ouverture du classeur, si tu fait les test sans avoir ouvert le classeur, T_Debut = 0 donc, place le curseur n'importe où dans la proc évènementielle "Workbook_Open" et appui sur F5, la variable sera initialisée, attends un peu puis fait de même avec la proc "Fermeture" à plusieurs reprises (espacée un peu dans le temps malgré tout) et lance la proc "TotalHeures" pour voir le cumul.

Hervé.
 
Re : temps passé sur un fichier

Ahhhhhhhhhhhhh, help 😕😕😕

Le tableau que tu m'as envoyé double zero est génial, c'est ce que je souhaite avoir mais quand je le mets dans mon fichier ça fonctionne plus ou moins...🙁

Est comment fait on pour le réinitialiser, si je supprimer les ligne ou efface tout bêtement la macro dysfonctionne, et le problème c'est que c'est un fichier vierge que j'utilise comme base au fur et a mesure des fichiers que j'ai à étudier "j'enregistre sous".

Merci de votre aide si précieuse

Voilà un lien pour dl le fichier (il est trop lour pour le mettre en piece jointe) :

Ce lien n'existe plus
 
Re : temps passé sur un fichier

Bonjour à toutes et à tous,

Pitchoune, voici un nouveau fichier, lequel comporte un onglet unique, celui destiné à la mesure du temps passé sur les diverses tâches évoquées dans ton message initial.

Pour la suppression des informations accumulées sur ledit onglet, une macro est ajoutée.

A présent, ton fichier s'appelant A et le mien s'appelant B, je te suggère de procéder comme suit :

- dupliquer l'onglet "Durée" de B vers A ;

- dupliquer les codes présents dans ThisWorkbook de B dans ThisWorkbook de A ;

- dans l'onglet "Durée" de A, clic sur le bouton "Remise à zéro" ;

- enregistrer le fichier A et le fermer.

(Nota : Présence d'une plage nommée "Champ")

Si je n'ai rien oublié 🙄, ton fichier est opérationnel.

Bon courage 🙂 et à bientôt.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…