IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Chrono au centième dans VBA Excel [XL-2010]


Sujet :

Macros et VBA Excel

  1. #21
    Invité
    Invité(e)
    Par défaut
    Je vais regarder ce que je peux faire pour toi,mais en attendant petite précision.

    OnTime est assujettie à interruption 1C, qui comme son nom.ne.l'indique pas est l' interruption timer!

    Elle ce produit 38 fois pas secondes 1/38=0.268 on est loin du centième!

    L'interruption 1C n'est pas prioritaire elle ce produit quand le système à le temps de la traiter.

    À chaque fois que OnTime appel ta procédure tu fais un truc du genre T=T+1 hors nous venons de voir qu'il n'y a pas de régularité à la fin T contient une valeur qui na rien a voir avec le temps écoulé!

    GetTickCount te retourne au millième près le temps écoulé entre le moment ou tu allume ton ordinateur et son appel!

    Tu initialises un variable au start=GetTickCount du chronomètre et chaque impulsion d'horloge tu récupère le delta.

    Delta=GetTickCount - Start et la tu rattrapes le décalage!

    Notes qu'il te sera impossible de descendre en dessous du dixième avec OnTime!

  2. #22
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    deux boutons sur une feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
        Range("a1").Value = Timer
    End Sub
     
    Private Sub CommandButton2_Click()
        Range("b1").Value = Timer
        Range("c1").Value = Range("b1").Value - Range("a1").Value
    End Sub
    Bonsoir
    Voici ce que j'ai testé
    Les valeurs récupérées mes semblent incohérentes
    Après avoir appuyé sur Commandbutton1 puis sur commandbutton2 environ 1 s après, les valeurs récupérées en A1 A2 et A3 sont incompréhensibles et ne semblent pas prendre en compte les dixièmes ou centiemes de seconde
    18/11/2106 16:41:15 en A1
    19/11/2106 11:26:15 en A2
    18:45:00 en A3
    (première photo)
    Merci pour ton aide
    je pense qu'on est sur la bonne voie par cette methode
    J'ai essayé la fonction Time plutôt que Timer et les valeur renvoyées sont correctes mais je n'ai toujours pas de 1/10 eme et 1/100 eme
    (2 eme photo)
    Nom : Test Clement.jpg
Affichages : 604
Taille : 77,5 Ko
    Nom : Test Clement 2.jpg
Affichages : 624
Taille : 93,1 Ko

  3. #23
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Timer donne le nombre de secondes écoulées depuis minuit.

    Donc la différence entre deux Timer c'est le nombre de secondes avec une partie décimale sur windows. Sur Mac, il n'y a pas de partie décimale.

    Tes cellules sont formatées en heures et c'est normal qu'elles n'affichent pas les fractions de secondes, parce que ce format n'affiche pas les fractions de secondes.

    Mets tes cellules au format général, oublie les heures et laisse tes cellules vides. Timer donne des secondes, pas des heures et tes cellules vont se remplir automatiquement.

  4. #24
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par philou59178 Voir le message
    j'ai fait comme ceci ====> Erreur d'excécution '13' Imcompatibilité de type !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime Now + ("00:00:01"), "compte"
    Je parlais de modifications à faire sur le code que j'ai proposé, pas sur ton code de départ.

  5. #25
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code Caca! : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Public T As Date, Start As Boolean
     
     
    Sub Tic()
    Dim S As Date
    If Start = True Then
        S = Time - T
        Range("A1") = Format(S, "hh:mm:ss,") & Right(Format(S, "#0.000"), 3)
        DoEvents
    '    Application.OnTime Now + TimeValue("00:00:01"), "Tic"
    End If
     
     
    End Sub
    Sub Bouton1_Clic()
    Range("A1:A100") = ""
    T = Time: Start = True: 'Application.OnTime Now + TimeValue("00:00:01"), "Tic"
    Do While Start
    Tic
    Loop
    End Sub
    Sub Bouton2_Clic()
    Start = False
    End Sub
     
     
    Sub Caseàcocher6_Clic()
    [A7] = [A1]
    End Sub
    Sub Caseàcocher7_Clic()
    [A8] = [A1]
    End Sub
    Fichiers attachés Fichiers attachés

  6. #26
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Quand je pense que VB.net a une classe Timer qui demande de spécifier les intervalles en millisecondes (OK le timer de Windows Forms est un peu plus lent), et que le même VB.net peut exprimer une durée d'intervalle en millisecondes, même si un affichage en continu ne peut pas être précis à la milliseconde, je me demande pourquoi faire cela avec Excel. (Ou pourquoi il y a des cordonniers mal chaussés qui veulent demeurer mal chaussés quand ils peuvent être bien chaussés pour rien, ou presque ? )

    Mais bon, ce n'est pas la première, ni la dernière fois, fois que quelqu'un veuille détourner Excel de sa mission et que je fasse la même réflexion

    P.S. Pour un particulier, Visual Studio Community est gratuit, il peut être utilisé pour créer des applications pour Excel, il produit des programmes compilés et il vient avec une version gratuite de SQL Server.

    P.P.S. Ce ne sont pas toutes les tablettes qui peuvent supporter un Excel avec VBA

  7. #27
    Invité
    Invité(e)
    Par défaut
    Bonsoir Clément,

    De toutes les façons Excel brideras toujours le chronomètre!

    J'ai testé avec le contrôle timer de Vb6 1/1500 secondes!

    Oui la pression et Excel ça fait 2. Je te rejoins sur la seule solution plausible!

    Perso je ne développerai pas mon pace-maker sur excel!

    Pour avoir une précision au centième il faut une fréquence d'échantillonnage 10 fois plus grande.
    Dernière modification par Invité ; 08/02/2018 à 00h33.

  8. #28
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    J'ai testé avec le contrôle timer de Vb6 1/1500 secondes!
    Bonjour,

    Attention toutefois à ne pas vendre du rêve !

    A moins que tu aies eu de la chance, pour avoir aussi expérimenté GetTickCount en VB6, j'ai eu quelques déconvenues. Nous avions besoin d'émettre des salves de fréquences d'une durée de 50 ms, et on s'est rendu compte qu'on oscillait entre 48 et 52 ms... parfois même plus.... et ce, même sans "parasite" extérieur (clavier ou souris)

    Mais comme ça été dit et redit, vouloir une telle finesse sur Excel d'une part, et avec un clic sur un bouton d'autre part, avec toute l'imprécision que cela comporte...

  9. #29
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour à tous,

    Lorsqu'en 1960, Armin Hary a établi le record du 100m en 10 secondes l'on ne connaissez pas les centièmes car c'était du chronométrage manuel.

    Depuis 1968 plus aucun record n'est mesuré en manuel.

    En 2018, 50 ans plus tard, l'éducation nationale voudrait donc mesurer en centièmes des résultats en chronométrage manuel sur tablette,
    c'est vraiment une des plus grosses plaisanteries de l'année.

  10. #30
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    la plaisanterie n'est pas tant la tablette mais l'outil utilisé, à savoir Excel …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  11. #31
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Phil'oche Voir le message
    Bonjour,

    Attention toutefois à ne pas vendre du rêve !

    A moins que tu aies eu de la chance, pour avoir aussi expérimenté GetTickCount en VB6, j'ai eu quelques déconvenues. Nous avions besoin d'émettre des salves de fréquences d'une durée de 50 ms, et on s'est rendu compte qu'on oscillait entre 48 et 52 ms... parfois même plus.... et ce, même sans "parasite" extérieur (clavier ou souris)

    Mais comme ça été dit et redit, vouloir une telle finesse sur Excel d'une part, et avec un clic sur un bouton d'autre part, avec toute l'imprécision que cela comporte...
    Bonjour,
    Oui c'est ce que je n'arrête pas de dire depuis le début de ce file!

    Il faut une fréquente d'échantillonnage dix fois supérieur à c'elle espéré!

    Je viens de faire un contrôle Vb.net, j'espère le tester bientôt dans Excel!

    Je ne garantie rien pour le moment!

    Il fonctionne en .net pas encore sur Excel!

  12. #32
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Par défaut
    Bonsoir à tous

    je tenais à remercier toutes les personnes qui sont intervenues pour me donner leur avis d'expert sur l'utilisation d'excel comme chronomètre.
    J'ai bien compris que son utilisation n'était pas la panacée, que l'utilisation d'un chronomètre manuel est certainement plus sùr.
    Lors de notre dernière évaluation en natation, nous étions deux collègues pour mesurer les temps des élèves. Pour les 24 mesures que nous avons faites chacun, nous avons eu au maximum 25 centième d'écart entre nos deux chronométrage lors d'une mesure. Effectivement, la mesure au centième me parait exagérée, mais le chronométrage manuel me semble toutefois précis au dixième pour peu qu'on cherche à avantager les élèves, en prenant le meilleur temps des deux.
    Je pense quand même avoir trouvé une solution dans tout vos post afin d'utiliser mon programme lors des séances d'entrainement, qui ne nécessite pas de grande précision.
    Je clos donc ce fil de discussion et j'aurai certainement encore besoin de vous pour me perfectionner sur excel.
    Cordialement
    Philippe

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. userform déconnecté dans vba excel
    Par PTIT FILOU dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2008, 16h59
  2. Réponses: 5
    Dernier message: 27/05/2008, 19h43
  3. Liste des contrôles dans VBA-Excel
    Par CAFOUIN dans le forum Excel
    Réponses: 2
    Dernier message: 23/02/2007, 18h50
  4. Name et formula dans VBA Excel
    Par khadba dans le forum Windows
    Réponses: 1
    Dernier message: 20/02/2007, 12h37
  5. [VBA-E] Compatibilité de Date dans VBA Excel
    Par dorschner dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/05/2006, 20h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo