Macro Chronomètre qui ne fonctionne plus

Bonjour à tous,

Je me suis fais aider ici même l'an dernier pour réaliser mon projet de cross dans mon collège.

On m'a guidé dans la création de la macro que vous trouverez en pièce jointe.

Celle ci ne se lance plus a priori à cause du chronomètre.

Quelqu'un peut m'aider à la faire fonctionner à nouveau? et si possible m'expliquer ce qui ne fonctionnait pas?

Merci d'avance,

Cordialement,

Julien.

Bonjour,

il faut placer les '_'

1/

mtimer à corriger par m_Timer

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ' arreter le timer
    On Error Resume Next
    Application.OnTime EarliestTime:=mnextTime, Procedure:="m_Timer", Schedule:=False
End Sub

2/ le module 1 '_'

Option Explicit

Public m_nextTime As Date
Public temps As Date
Dim t1 As Date

Sub remettreàzéro()
' remettreàzéro Macro
    fin_timer
    Sheets("Lancer la course").[H7:H14].ClearContents
    Sheets("liste des élèves et tps").Range("G3:P1601").ClearContents
End Sub

Sub lancer()
    t1 = Time
    [H7] = t1
    m_Timer
End Sub

Sub m_Timer()
    temps = Time - t1
    m_nextTime = Now + TimeValue("00:00:01")
    Application.OnTime m_nextTime, "m_Timer"
    Sheets("Lancer la course").[H8] = temps
End Sub
Sub fin_timer()
    ' arreter le timer
    On Error Resume Next
    Application.OnTime EarliestTime:=m_nextTime, Procedure:="m_Timer", Schedule:=False
End Sub

'Arrêter:
'    On Error Resume Next
'    Application.OnTime chronoTime, "majChrono", , Schedule:=False
'    On Error GoTo 0
'

Bonjour André et merci pour votre réponse.

Le chronomètre fonctionne bien.

Par contre, normalement, lorsque je rentre un numéro de dossard, cela inscrit le temps de course dans la case correspondante (ligne du dossard, bonne case en fonction du tour) de l'onglet "liste des élèves et tps".

La, ça le place dans l'onglet "lancer la course" et du coup mon fichier ne fonctionne pas.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lig As Long, nb_tour As Long
    If Target.Address = "$H$14" Then
        If Target < 1 Or Not IsNumeric(Target) Then Exit Sub
        lig = Target + 2
        With Sheets("liste des élèves et tps")
            nb_tour = Application.CountA([G2:P2].Offset(Target))
            If nbtour = 10 Then
                MsgBox "Plus de 10 tours..."
            Else
            [G2].Offset(Target, nb_tour) = temps
            End If
        End With
    End If
End Sub

J'ai cherché, je ne comprends pas pourquoi cela ne marche plus.... Cela fonctionnait l'an dernier...

Il faut que j'indique à la macro de mettre le résultat dans le bon onglet.

Quelqu'un peut me dire ou je dois mettre cette information?

Enfin, est ce qu'il est possible de modifier la case H14 par quelque chose de plus pratique? genre un bouton? Parce que la, je dois mettre le numéro, taper "entré" puis revenir dans la case pour mettre un autre numéro etc.

J'aimerais un bouton sur le quel je tape le numéro puis entré puis un autre numéro sans devoir revenir dessus (je ne sais pas si c'est clair...)

Merci pour votre aide!!!!

Bonne journée,

Julien.

Bonjour,

1/ Dans la case H14 liste déroulant avec les numéros de dossards

la colonne P qui est masqué de la feuille 'Lancer la course' comprend la liste de données se nommant 'DOC'

donc, il suffit juste de choisir le numéro de dossard dans cette liste numérotés de 1 à 30

2/ je ne vois pas pour le reste

crdlt,

André

Merci encore André,

La case H15 renvoie donc à la liste en colonne P...

Mais cela fonctionnait plutôt bien en fait

C'est juste qu'au lieu de remplir les données sur la feuille "lancer la course" j'aimerais que cela remplisse les données sur la feuille "liste des élèves et tps" à partir de la colonne G (G3 pour le premier tour du dossard 1, H3 pour le second tour, etc).

Ce que je trouve bizarre c'est que l'an dernier tout fonctionnait et que je n'ai rien touché depuis... pourquoi cela ne marche plus

J'ai trouvé un fichier plus ancien sur lequel cela marchait... Le voila en pièce jointe

Est ce que quelqu'un sait me dire la différence entre mon fichier actuel et l'ancien?

J'aimerais que mon fichier actuel puisse fonctionner... j'ai passé du temps dessus pour la mise en forme, la gestion des dossard, des résultats, etc.

Merci à tous

re, bonjour

il manque un signe '.' (point)

récent () :

nb_tour = Application.CountA([G2:P2].Offset(Target))

ancien fichier (bon)

nb_tour = Application.CountA(.[G2:P2].Offset(Target))

j'ai testé est cela fonctionne

crdlt,

André

z1000

Ahah voila!!!

Il y a eu une mise à jour du langage VBA?

Je comprends pas pourquoi le code était faux d'un coup

En tout cas c'est parfait

Je crois que je suis prêt pour le cross ahah! Ca tombe bien c'est mercredi prochain...

Merci pour tout André! Sincèrement!

Julien.

Re,

je ne pense pas qu'une mise à jour a effectué cela, un copier coller qui a du sans doute foiré

bon chrono.... @+

crdlt,

André

Rechercher des sujets similaires à "macro chronometre qui fonctionne"