Histoire de chronomètres

Bonjour à tous,

Dans le cadre de mon travail je dois créer des chronomètres sur excel qui doivent pouvoir chronométrer plusieurs tâches à la fois.

J'ai déjà un programme VBA mais je ne peux pas lancer deux compteurs à la fois, dès que j'en lance un deuxième le premier s'arrête...

Je mets une capture d'écran de mon programme (que j'ai répété pour chaque chronomètre) en espérant que quelqu'un pourra m'aider !

capture

Salut Bastien Lbr,

Serait-il possible d'insérer le code plutôt qu'une capture d'écran ou encore mieux, joindre un fichier ?

Salut !

Pas de soucis, j'ai mis le fichier en pièce jointe !

Merci !

Je fais des tests en changeant les variables mais apparemment c'est pas ça.. Je me suis dit que ça venait peut-être du fait que tu as les mêmes variables tous du long.. Je continue de regarder !

Je pense savoir pourquoi cela ne fonctionne pas !

Excel ne peut gérer plusieurs macro à la fois. En cliquant sur start du chronomètre 1 cela lance bien le chrono. Mais si tu lances le 2ème chrono, tu aimerais lancer une deuxième macro en même temps ! Ce qui n'est pas possible pour excel.

Ta volonté de faire plusieurs chronomètres en même temps doit être possible mais dans une seul macro

C'est jouable mais il va falloir bien réfléchir sur comment exécuter ça !

En fouillant sur le net j'ai trouvé ça :

11progression.xlsm (82.57 Ko)

Cela t'irai de cette manière ?

Bonjour à tous,

On peut aussi faire très simple (si j'ai bien compris la demande?).

Dans l'exemple, un 1er double-clic sur une tache (ligne 1) écrit l'heure en ligne 2.

Un 2ème double-clic sur la même tache écrit l'heure en ligne 3 et la durée en ligne 4.

Si besoin, il serait facile de prévoir un double-clic (sur A1 par exemple) qui écrit l'heure de début sous toutes les tâches.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("1:1")) Is Nothing Then
        If Not Target.Value = "" Then
            If Cells(2, Target.Column).Value = "" Then
                Cells(2, Target.Column).Value = Now()
            Else
                Cells(3, Target.Column).Value = Now()
                Cells(4, Target.Column).Value = Cells(3, Target.Column).Value - _
                                                Cells(2, Target.Column).Value
            End If
        End If
        Cancel = True
    End If
End Sub

Pierre

Merci beaucoup pour vos retour ! Je vais étudier les différentes propositions et je reviendrai vers vous !

Bonjour à tous,

On peut aussi faire très simple (si j'ai bien compris la demande?).

Dans l'exemple, un 1er double-clic sur une tache (ligne 1) écrit l'heure en ligne 2.

Un 2ème double-clic sur la même tache écrit l'heure en ligne 3 et la durée en ligne 4.

Si besoin, il serait facile de prévoir un double-clic (sur A1 par exemple) qui écrit l'heure de début sous toutes les tâches.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("1:1")) Is Nothing Then
        If Not Target.Value = "" Then
            If Cells(2, Target.Column).Value = "" Then
                Cells(2, Target.Column).Value = Now()
            Else
                Cells(3, Target.Column).Value = Now()
                Cells(4, Target.Column).Value = Cells(3, Target.Column).Value - _
                                                Cells(2, Target.Column).Value
            End If
        End If
        Cancel = True
    End If
End Sub

Pierre

Bonjour,

Le programme me conviendrait mais est-il possible de faire un reset des compteurs sans avoir à effacer toutes les données du tableau?

Merci d'avance !

Bonjour,

Si la question est de garder un historique avant d'effacer, c'est très simple aussi :

Sub Historique()
Dim lg As Long, cl As Long, T As Variant

    With Sheets("Feuil1")
        lg = .Cells(Rows.Count, 1).End(xlUp).Row
        cl = .Cells(1, Columns.Count).End(xlToLeft).Column
        T = .Range(.Cells(1, 1), .Cells(4, cl)).Value
        .Range("A" & lg + 1).Resize(UBound(T, 1), UBound(T, 2)) = T
        .Range(.Cells(2, "B"), .Cells(4, cl)).ClearContents
    End With
End Sub

Pierre

Bonjour,

Merci beaucoup c'est juste ce qu'il me fallait !

Rechercher des sujets similaires à "histoire chronometres"