Chrono course de côte

Lone-wolf

XLDnaute Barbatruc
Bien sûr que je connait, mais eux ils ont le matériel pour chronométrer (écrans et autres) , et ce sont parfois une dixaine de personnes qui font une course de 10mn.
 

Dranreb

XLDnaute Barbatruc
Bonjour Lone-wolf
Mon idée c'était quelque chose comme ça :
VB:
Option Explicit
Private Declare Function QueryPerformanceFrequency Lib "Kernel32" (X As Currency) As Boolean
Private Declare Function QueryPerformanceCounter Lib "Kernel32" (X As Currency) As Boolean
Dim HeureRéf As Date, QPCRéf As Currency, QPF As Currency

Sub ActiverChrono()
QueryPerformanceFrequency QPF
HeureRéf = Now + TimeSerial(0, 0, 1)
Application.OnTime HeureRéf, "SynchronisationChrono"
End Sub

Sub SynchronisationChrono()
QueryPerformanceCounter QPCRéf
End Sub

Function HeureJuste() As Double
Dim QPC As Currency
QueryPerformanceCounter QPC
If HeureRéf = 0 Then Err.Raise 9999, , "Chronomètre non actif"
HeureJuste = (HeureRéf - Int(HeureRéf)) + (QPC - QPCRéf) / QPF / 86400
End Function

Sub TestIncrire()
ActiveSheet.[B5] = HeureJuste
MsgBox "Heure approximative incrite: " & Format(Now, "hh:mm:ss")
End Sub

Sub DésactiverChrono()
HeureRéf = 0
End Sub
 

Dranreb

XLDnaute Barbatruc
Après pour tout effet visuel inutile souhaité on invoque HeureJuste
On affiche le temps écoulé par soustraction de HeureJuste - HeureDépart reprise de la ligne sélectionnée par exemple.
HeureRéf ne sert pas d'heure de départ. Elle sert seulement au calcul de HeureJuste
 

ROGER2327

XLDnaute Barbatruc
Bonjour à tous.

Je n'ai pas suivi la discussion en détail, aussi n'ai-je pas de solution adaptée au problème de mada16. Je dépose toutefois une contribution à base de VBA.Timer écrite pour une vieille discussion (2013 ?). C'est peut-être adaptable par notre ami...

Bonne soirée.


ℝOGER2327
#8461


Lundi 23 Décervelage 144 (Saint Tank, animal - fête Suprême Quarte)
1[SUP]er[/SUP] Pluviôse An CCXXV, 6,2878h - lauréole
2017-W03-5T15:05:27Z
 

Fichiers joints

mada16

XLDnaute Nouveau
Bonsoir roger2327 et pierrejean et merci de vos contributions.
Le chrono de roger est une bonne base que j'aurai bien voulu trouver quand je cherchais sur le net...et l'adaptation de pierrejean est tout simplement LE chrono que je cherchais à faire simplement au début : un bouton départ pour lancer le chrono en s'arrangeant pour synchroniser le lancement entre les deux commissaires, ensuite on clique sur un N° de kart pour afficher le temps dans la case (commissaire 1 au départ et commissaire 2 à l'arrivée) et ensuite on peut faire un copier/coller sur un autre fichier avec une formule de soustraction pour obtenir le temps de parcours. Et enfin un bouton d’arrêt du chrono et un bouton de RAZ.
Je garde ça de coté car je ne veux pas dénigrer ni ignorer le travail de Lonewolf qui a su aussi répondre à mes attentes et même proposer des options et améliorations que je n'avais pas envisagé.
 

mada16

XLDnaute Nouveau
Bien sûr que je connait, mais eux ils ont le matériel pour chronométrer (écrans et autres) , et ce sont parfois une dixaine de personnes qui font une course de 10mn.
salut Lone-wolf,

sans vouloir entrer dans la polémique, j'ai l'impression que ce dont tu me parles(une dixaine de personnes qui font une course de 10mn), c'est du karting dit de loisir, ceux qu'on peut louer sur une grande majorité de piste de France. Ca n'a rien à voir avec le karting de compétition, et encore moins avec les courses de côtes de karting. Il n'y a que très peu d'épreuves de ce genre en France (moins de cinq) et c'est très peu connu, même dans le monde du kart. Mais ce n'est pas le sujet, revenons à ce fameux chrono!!!
j'ai testé les derniers fichiers que tu m'a envoyé, et ça marche très bien!!! j'ai modifié les formats dans les cellules qui avaient un format bizarre, c'est bon aussi...
J'ai apporté quelques autres modifications, mais plus d'ordre visuel que structurel. J'ai déplacé les boutons pour qu'ils soient toujours accessibles, quelque soit la hauteur de page entre le kart 1 et le kart 60 (normalement y en aura pas plus). d'ailleurs à ce sujet, j'au vu quelques part, sur ce forum je crois, mais je ne retrouve pas, qu'on pouvait "fixer" les boutons, c'est à dire que le bouton se déplace avec la page, quand on monte ou descend la page, le bouton reste au même endroit de l'écran. Est ce possible et comment fait on???
Ensuite j'ai déplacé la cellule chrono. Le but était au départ de supprimer la colonne C qui ne me sert à rien. J'ai réussi, en modifiant dans le code tous les C3 en E3, mais quand j'ai supprimé la colonne C, ça a tout déplacé et c'était le bordel. Donc j'ai gardé cette colonne et en ai profité pour m'en servir pour définir les catégorie...
Maintenant, j'ai remarqué un petit "bug" ( pour moi... ce n'en est peut être pas un...). Comme il n'y a pas encore de bouton RAZ, j'efface les données pour refaire soit un test, soit une autre épreuve. Et quand j'efface les données de la page départ (colonne D) ça m'efface des données de la colonne B de la page arrivée. Si j'efface les les temps un par un, les noms de la page arrivée s'efface un à un, mais si j'efface en paquet, il n'y a que le premier nom (colonne B8) qui disparaît, et de temps en temps, j'ai des données qui s'inscrivent en dehors du tableau.
Enfin, j'ai remarqué qu'on pouvait cliquer plusieurs fois sur le même N°, aussi bien sur la feuille départ qu'arrivée. Est ce qu'il est possible de "figer" les temps une fois que l'on a cliquer, afin de ne pas changer le temps par erreur (deuxième clic au mauvais endroit par exemple).
Je te joins le fichier que j'ai modifié.
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
si dans un chrono, le temps reste figé,
Ah non, dans un chrono pas plus que n'importe où ailleurs dans notre univers, le temps n'est figé.
On peut seulement le montrer ou non.
Les QueryPerformance servent essentiellement à noter une heure juste quelque part.
Mais on peut s'en servir aussi pour faire défiler l'heure et un temps dans des Label d'un UserForm dont le rôle sera essentiellement d’attester que le chrono est actif, c'est à dire qu'une heure de référence y est notée, et de commande claire d'inscription de la dite heure par un gros bouton rouge par exemple.
Je vais faire quelque chose de ce genre si ça t'intéresse.
 

mada16

XLDnaute Nouveau
bonsoir Dranreb,
J'ai essayé de suivre votre conversation avec Lone-wolf, mais sans succès, c'est du chinois pour moio_Oo_O
Je suppose quand même que c'est lié à ma demande et je crois même que tu as contribué à la résolution d'un problème (affichage des millièmes).
Donc merci à toi aussi de ton aide.
Dans ton dernier post, tu dis qu'on peut montrer une heure!! Jusqu'à quelle précision ???
Peut on simplement montrer une heure en format hh:mm ou peut on aller plus loin, du genre hh:mm:ss,000 ???
En fait c'est pour savoir si on peut faire une modif dans le fichier de Lone-wolf. Pour l'instant, quand on clique pour la première fois sur un N° de kart, dans la case top départ, un chrono commence à dérouler (à partir de 0) et dans la case heure de départ du kart concerné, l'horaire s'affiche. Quand on clique sur un deuxième N° de kart, le temps repart à 0 et un autre horaire s'affiche dans la case concernée.
Le top serait que ce soit le même temps partout, soit le chrono à partir de 0, soit l'horaire actuel et que celui qui défile ne s'arrette pas ou ne change pas quand on clique sur un autre N° de kart. J'espère que être clair....
 

Dranreb

XLDnaute Barbatruc
Voilà un essai.
La sélection en colonne A ou B (seulement s'il y a une heure de départ) fait apparaitre un chronomètre.
 

mada16

XLDnaute Nouveau
Oups!!!!
quand je clique sur une cellule, quelle qu'elle soit, j'ai un message d'erreur, "erreur de compilation, le code contenu dans ce projet doit être mis à jour pour pouvoir être utilisé sur les systèmes 64bits....
 

Dranreb

XLDnaute Barbatruc
Pas grave. Ajoutez PtrSafe derrière les Declare
Je vient d'ajouter cette procédure dans UFmChrono :
VB:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim QPC As Currency
QueryPerformanceCounter QPC
Cel.Value = HRéf + (QPC - QPCRéf) / QPF / 86400
ÇaTourne = False
End Sub
Elle permet par exemple de noter l'heure en enfonçant la barre d'espacement, ce qui évite de rater le bouton rouge si on surveille plutôt des évènements du terrain.
 

Fichiers joints

mada16

XLDnaute Nouveau
Ouais!!! pas mal ta solution!!!!
L'heure qui défile avec les millièmes c'est top.
Par contre, dés qu"on clique sur le bouton rouge ou la barre d'espace, le chrono disparaît.
Ca serait bien qu'il reste, qu'on ait pas besoin de reselectionner une case (A ou C) pour le faire ré-apparaître.
EDIT Ou carrément que ce chrono apparaisse dés l'ouverture du fichier...
Merci
 

mada16

XLDnaute Nouveau
Re Lone-wolf,

là, dit comme ça, ç'est du chinois...
Mais je vais essayer de voir, on s'est jamais...et puis c'est comme ça qu'on apprend;)
 

Dranreb

XLDnaute Barbatruc
Je voulais dire que le défilement ne se faisait pas
Je sais, je plaisantais. De fait le défilement n'a rien de fonctionnel: ça montre juste le truc vivant.
Ca serait bien qu'il reste, qu'on ait pas besoin de reselectionner une case (A ou C) pour le faire ré-apparaître
Si vous voulez, il suffit de mettre en commentaires quelques instructions 'ÇaTourne = False' (mais surtout pas celle de UserForm_QueryClose). Mais je pense qu'il vaut mieux laisser le champ libre pour sélectionner une autre cellule où l'heure sera à noter dans l'instant prochain, car je doute qu'il faille mettre une autre heure dans la même cellule. D'autant plus qu'il réapparait aussitôt, sans même avoir besoin d'un délai moyen d'une demi seconde pour se recadrer avec l'heure, car il est juste masqué, non déchargé, ce qui n'est pas le cas si on en demande la fermeture par la croix.
Il est affiché en non modal, de sorte qu'on peut aussi sélectionner une autre cellule pendant qu'il tourne: il se déplacera et prendra en compte l'heure de départ de la nouvelle ligne pour calculer le temps affiché.
Dans la macro Private Sub UserForm_Activate(), il y a la ligne If ÀDécharger Then Unload Me Else Me.Hide. Mettre peut-être à la place
avant la ligne DoEvents: Loop - If ÀDécharger Then Exit Do.
N'apporte rien à mon avis.
 
Dernière édition:

Discussions similaires


Haut Bas