Microsoft 365 compter le temps passé sur une ligne et cumuler tous les temps passés

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Voilà plusieurs jours que je planche sur un nouveau besoin et, pour l'instant, malgré tests et recherches, je n'y suis pas encore arrivé.

Contexte
Dans le fichier test joint, j'ai les suivants :
- ligne 6 masquée (hauteur 0),
- lignes 7 à 10 contiennent des informations à afficher "clairement" quand clic sur une cellule,

Code feuille Test
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("a7:s20000")) Is Nothing Then
    If R.RowHeight = 300 Then
    Cells(ActiveCell.Row, 1).Select
    [a1].Select
    ActiveWindow.ScrollRow = Selection.Row
    Else
    SupprFormats
    Application.EnableEvents = False
    Application.ScreenUpdating = False

    Rows("6:6").Copy
    Cells(ActiveCell.Row, 1).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.RowHeight = 300
    Cells(ActiveCell.Row, 1).Select
     Application.CutCopyMode = False
    End If
    [a1].Select
    ActiveWindow.ScrollRow = Selection.Row
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End If
End Sub

Action
1 - Pour démarrer le test, clic sur le bouton "supprime formats" (supprime les formats des lignes (sauf ligne 6),
2 - Pour afficher en clair et en couleur les lignes clic dans une cellule de la ligne choisie pour affichage,

Mon besoin
Je voudrais mettre en cellule :
1 - en cellule "M5" le temps pendant lequel je suis resté sur la ligne affichée
2 - en cellule "M4" le temps "cumulé" pendant lequel je suis resté sur toutes les lignes

Auriez-vous le bon code ?

Je joins un p'tit fichier test et je continue mes recherches,
Un grand merci,
lionel :)
 

Pièces jointes

  • affichage_temps.xlsm
    33 KB · Affichages: 10
Dernière édition:
Solution
En déclarant la ligne cliquée en Public pour la mémoriser puis avec :
VB:
    If LigneCliquée <> R.Row Then T0 = Timer
et
   If R.Row <> LigneCliquée Then
        LigneCliquée = R.Row
        Tpassé = (Timer - T0) / 86400
        [M5] = Tpassé
        [M4] = [M4] + Tpassé
    End If

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard :)

"Il n'est pas normal que ta macro s'exécute sur les lignes > 10"
Dans mon fichier le code doit s'exécuter au clic sur les lignes 7 à 10 ou plus si lignes remplies.

"Tu devrais être capable d'adapter mes codes à ce que tu veux faire."

LOL pas si évident que ça pour moi .... je tente ... je tente ...
:)
 

Usine à gaz

XLDnaute Barbatruc
"Et quand on sélectionne la colonne A cela affiche la ligne 1, c'est normal ça ?"
Chez moi pas d'affichage de ligne si clic avant ligne 7
Quand clic de A à z dans une lignes remplie à partir de la lignes 7, le but est d'afficher la ligne au même format que celui de la ligne 6 et de compter le temps que je reste sur la ligne affichée.

"Et le clic sur le bouton ne fait rien !!!"
Si tu veux évoquer le bouton "supprime formats pour tests", c'est juste pour remettre les lignes à "sans format" pour tester à nouveau.
:)
 

Discussions similaires

Réponses
8
Affichages
727

Statistiques des forums

Discussions
315 094
Messages
2 116 155
Membres
112 671
dernier inscrit
Sylvain14