Temps

  • Initiateur de la discussion Fanny
  • Date de début
F

Fanny

Guest
re bonjour à tous,

je me pose une question:

serait-il possible d'insérer une fonction dans une feuille excel qui me permettrai de calculer le temps que j'aurai passé sur cette feuille de son ouverture à sa fermeture.

en bref que le temps passé sur ce fichier soit indiqué et sans language VBA

Merci
 

andré

XLDnaute Barbatruc
Salut Fanny,

Sans VBA il me semble que ce n'est pas faisable.

Manuellement oui.
A l'ouverture taper en A1 : Ctrl+:
A la fermeture taper en B1 : Ctrl+:
En C1 la formule : =SI(NB.VIDE(A1:B1)=0;B1-A1;'')

En enregistrant cette procédure sous une macro BeforeOpen et BeforeClose, c'est automatique.

Moi je procède manuellement, mais sur une feuille séparée.
A l'ouverture en A1 je tape Ctrl+; et j'obtiens la date.
Puis je place les deux Ctrl+: en B1 et C1, la formule en D1.
Ceci me permet d'additionner les heures par jour, par mois, ... et d'avoir un total général

Peut-être qu'un forumeur spécialisé en VBA pourrait te concocter une feuille du genre, qu'il te suffit de placer dans ton fichier modèle, et ton problème (le mien aussi) sera résolu.

De plus, on pourrait songer à y faire figurer le nom de l'utilisateur, et de cacher la feuille, ce qui permet un contrôle complet.

Espérant avoir pu t'aider.
Ândré.
 

2passage

XLDnaute Impliqué
Bonjour,


en collant le code suivant dans ThisWOkbook, ca devrait marcher : à l'ouverture, ca vérifie l'existence de la feuille Journal. Si nécessité ca la crée. ensuite, les infos user, debut, fin et la formule de différence s'ajoutent. Format / feuille / afficher /journal pour regarder...


Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim tmpname As String
Dim test As Boolean
test = False
For Each feufeuille In ActiveWorkbook.Worksheets
    If feufeuille.Name = 'Journal' Then test = True
Next
If test = False Then
    ActiveWorkbook.Worksheets.Add
    tmpname = ActiveWorkbook.ActiveSheet.Name
    Sheets(tmpname).Name = 'Journal'
    Range('A1').Value = 'Nom'
    Range('B1').Value = 'Début session'
    Range('C1').Value = 'Fin session'
    Range('D1').Value = 'Durée'
    ActiveWorkbook.ActiveSheet.Visible = False
End If
If ActiveWorkbook.Worksheets('Journal').Range('B65356').End(xlUp).Value <> 'Début session' Then
    ActiveWorkbook.Worksheets('Journal').Range('B65356').End(xlUp).Offset(0, 1).Value = Now()
    ActiveWorkbook.Worksheets('Journal').Range('B65356').End(xlUp).Offset(0, 2).FormulaR1C1 = '=RC[-1] - RC[-2]'
End If
Sheets('Journal').Visible = False
End Sub

Private Sub Workbook_Open()
Dim tmpname As String
Dim test As Boolean
test = False
For Each feufeuille In ActiveWorkbook.Worksheets
    If feufeuille.Name = 'Journal' Then test = True
Next
If test = False Then
    ActiveWorkbook.Worksheets.Add
    tmpname = ActiveWorkbook.ActiveSheet.Name
    Sheets(tmpname).Name = 'Journal'
    Range('A1').Value = 'Nom'
    Range('B1').Value = 'Début session'
    Range('C1').Value = 'Fin session'
    Range('D1').Value = 'Durée'
    
    ActiveWorkbook.ActiveSheet.Visible = False
End If
ActiveWorkbook.Worksheets('Journal').Range('A65356').End(xlUp).Offset(1, 0).Value = Environ('username')
ActiveWorkbook.Worksheets('Journal').Range('B65356').End(xlUp).Offset(1, 0).Value = Now()
Sheets('Journal').Visible = False
End Sub

enjoy
 

Discussions similaires

Statistiques des forums

Discussions
312 336
Messages
2 087 389
Membres
103 534
dernier inscrit
Kalamymustapha