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

IHM Discussion :

Format Heure/Minute capricieux. [AC-2000]


Sujet :

IHM

  1. #1
    Membre régulier Avatar de gwenagan
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 208
    Points : 98
    Points
    98
    Par défaut Format Heure/Minute capricieux.
    Bonjour à toutes et à tous,

    Toujours des soucis de format. Cette fois ci avec hh:mm. Je réalise un planning pour du personnel et je me retrouve avec un problème de somme d'heures et minutes mais pas dans tous les cas.
    Je me permet de mettre une capture d'écran pour être plus explicite. Je me retrouve avec un total d'heures chez un salarié de 09:00 le samedi. Mais en réalité, la somme des heures semble être de 08:59.9999999999991 comme le montre la capture d'écran.
    Je me retrouve donc avec un total à la semaine de 08:60 en arrondissant.
    Je vous remercie par avance pour votre aide et vous souhaite une très bonne journée.
    Nom : CALENDRIER_1.png
Affichages : 97
Taille : 30,4 Ko

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 199
    Points : 19 298
    Points
    19 298
    Billets dans le blog
    59
    Par défaut
    Bonsoir,

    C'est bizarre comme format :

    08:59.9999999999991

    Vous utiliser du code ou une fonction pour avoir ce format ?

    ça peut être une erreur dans les calculs portant sur des nombres de type float.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre régulier Avatar de gwenagan
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 208
    Points : 98
    Points
    98
    Par défaut
    Bonjour et merci pour votre aide.

    En réalité, tous les champs de mon formulaire (LUNDI, TOTAL LUNDI puis MARDI, TOTAL MARDI etc sont au format "Heure, abrégé" Masque de saisie 00:00).

    Dans la table qui contient les données (LUNDI, MARDI etc) ces champs sont au même format "Heure, abrégé" Masque de saisie 00:00.

    Les champs de mon formulaire (TOTAL LUNDI, TOTAL MARDI etc jusqu'à TOTAL DIMANCHE) sont des champs indépendants au même format pour faire le total des journées.

    Là où cela se gâte, c'est pour le total de la semaine puis que ce total dépasse les 24 heures (donc le format 00:00 ne fonctionne pas).

    J'ai donc bidouillé pour extraire le nombre d'heures et le nombre de minutes de la façon suivant :

    [A] étant le total de LUNDI, [B] le total de MARDI etc...

    Pour les heures : =Ent(([A]+[B]+[C]+[D]+[E]+[F]+[G])*24)
    Pour les minutes : =VraiFaux(((([A]+[B]+[C]+[D]+[E]+[F]+[G])*24-Ent(([A]+[B]+[C]+[D]+[E]+[F]+[G])*24))*60)=0;"00";((([A]+[B]+[C]+[D]+[E]+[F]+[G])*24-Ent(([A]+[B]+[C]+[D]+[E]+[F]+[G])*24))*60))



    Cela fonctionne dans presque tous les cas, malheureusement.

    Merci encore et bonne soirée à tout le monde.

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 199
    Points : 19 298
    Points
    19 298
    Billets dans le blog
    59
    Par défaut
    Comme les dates sont stockées en float, ça semble être des erreurs dans les calculs sur les nombres à virgule flottante, j'essaierais d'utiliser la fonction round dans la formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    round([A]+[B]+[C]+[D]+[E]+[F]+[G];12)
    pour arrondir le nombre résultat de [A]+[B]+[C]+[D]+[E]+[F]+[G] et ainsi corriger l'erreur.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre régulier Avatar de gwenagan
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 208
    Points : 98
    Points
    98
    Par défaut
    Bonsoir à tout le monde et merci pour votre aide.
    J'ai retourné ça dans tout les sens, avec la fonction Round et Ent, et rien n'y fait. La méthode n'est pas bonne. N'y a t'il pas un moyen de contourner ça ? Demander à access d'afficher un total d'heures supérieur à 24 dans un format spécial autre que "Heure, abrégé" 00:00 ?

    Car j’obtiens ceci dés que le total atteint 24 :

    Nom : CALENDRIER_2.png
Affichages : 41
Taille : 40,8 Ko

    Je souhaite une très bonne soirée à tout le monde et encore merci pour votre aide et votre compréhension.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 199
    Points : 19 298
    Points
    19 298
    Billets dans le blog
    59
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre régulier Avatar de gwenagan
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 208
    Points : 98
    Points
    98
    Par défaut
    Merci beaucoup. J'avais déjà utilisé ce genre de méthode en stockant des minutes dans un champs de table puis, pour affichage dans un formulaire, divisé ce nombre de minutes par soixante pour obtenir les heures et par différence, afficher les minutes.
    Je vais éplucher tout ceci qui est très intéressant, et vous donnerais la solution choisie. Je ne mets pas en résolu tout de suite, cela va prendre quelque temps, mais je reviendrai vous donner ma solution.
    A attendant, je vous remercie et vous souhaite une très bonne soirée, à vous ainsi qu'à tous les visiteurs.

  8. #8
    Membre régulier Avatar de gwenagan
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 208
    Points : 98
    Points
    98
    Par défaut
    Bonjour à tout le monde,
    Comme promis, je reviens vous dire quelle méthode j'ai choisi. j'ai en faîte opté pour des champs numériques, un champs heures et un champs minutes. Je convertis tout en minutes et ainsi je peux additionner autant d'heures et de minutes que je veux. Simple mais efficace. Merci en tous cas pour votre aide.

    Mais une autre question se pose :

    Je contrôle pendant la saisie de l'utilisateur que le chiffre saisie dans les heures ne soit pas supérieur à 24 et 60 dans les minutes. J'interdis aussi la saisie de décimale.
    En revanche, comment puis-je dire à mon curseur de faire un SetFocus dans le champs suivant après la saisie de 2 chiffres. Actuellement, je suis obligé de taper "Entrée" pour aller à l'ordre de tabulation suivant (dans un format heure/minute je tape 08:15 car c'est un seul champs, là j'ai un champs heures et un champs minutes, je tape donc 08 dans le champs heures, puis la touche "Entrée" puis 15 dans le champs minutes). Peut on le faire automatiquement ?
    Une fois encore je vous remercie par avance et vous souhaite un bon week-end.

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 536
    Points : 14 408
    Points
    14 408
    Par défaut
    bonsoir,
    comment puis-je dire à mon curseur de faire un SetFocus dans le champs suivant après la saisie de 2 chiffres
    ça devrait fonctionner avec ces 2 propriétés: mettre 99; pour la propriété "Masque de saisie" et Oui pour "Auto tabulation"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Membre régulier Avatar de gwenagan
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 208
    Points : 98
    Points
    98
    Par défaut
    Bonjour à tout le monde et un énorme merci, comme d'habitude.
    Alors ça, je retiens. C'est super et ça marche à merveille.
    Un grand bravo.
    A bientôt.

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 199
    Points : 19 298
    Points
    19 298
    Billets dans le blog
    59
    Par défaut
    Bonjour,

    Citation Envoyé par gwenagan Voir le message
    Bonjour à tout le monde,
    Comme promis, je reviens vous dire quelle méthode j'ai choisi. j'ai en faîte opté pour des champs numériques, un champs heures et un champs minutes. Je convertis tout en minutes et ainsi je peux additionner autant d'heures et de minutes que je veux. Simple mais efficace. Merci en tous cas pour votre aide.
    .
    C'est une bonne idée de manipuler des entiers plutôt que des nombres à virgules flottantes sources d'erreurs.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème format heure minute sec et ms
    Par pjulie dans le forum R
    Réponses: 0
    Dernier message: 04/06/2015, 18h19
  2. [XL-2007] Format heure:minute dans Userform.
    Par Eric_du_87 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/10/2013, 20h37
  3. [MySQL] Comment afficher le résultat de ma requête en format heure minutes seconde ?
    Par AmBZH dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/06/2012, 10h15
  4. [XL-2003] tri avec format heure minutes
    Par nazaire dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/04/2011, 16h28
  5. Format heure minute seconde
    Par momo70 dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/06/2007, 11h41

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