Conversion decimal en heures par userform

Résolu
Arwill Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
Arwill Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,
Dans le fichier joint, je voudrais pouvoir saisir dans le champ durée du UserForm des temps avec un format soit heures:minutes, soit décimal mais que le format du résultat inscrit dans le tableau soit lui forcément au format [HH]:MM afin de pouvoir les additionner.
J'ai essayé différentes formules,dont certaines viennent de ce site, mais aucune ne fonctionne parfaitement.
Celle qui est jointe au fichier dans le code me renvoie 1:33 si je saisit 1.33, alors que le résultat devrait être 1:20.
Voici le lien pour le fichier.
https://www.cjoint.com/c/EIyrqa0qEdZ

J'espère avoir été clair mais cela fait tellement longtemps que cherche que j'ai l'impression de ne plus savoir m'expliquer.

Merci d'avance

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Pourquoi ne pas "forcer" l'utilisateur à saisir en un seul format?
    En fait, je ne voit pas l'intérêt de lui laisser ce choix, si ce n'est de vouloir s'appliquer des contraintes supplémentaires inutiles...
    0
  2. Utilisateur anonyme
     
    Bonjour,

    @Pijaku,ça va? Dans la nébuleuse adminstrative ou je travaille on nous impose souvent les deux formats.

    Je 'n'ai pas téléchargé ton fichier, ni écrit de code en VBA, mais c'est assez simple à faire


    soient
    temps ce que tu veux convertir
    heures un entier
    reste un decimale quelquonque
    minutes un entier

    heures = arrondi à l'inférieur de temps
    reste = temps-heures
    toto = reste * 60
    minutes = arrondi (comme tu veux) de toto


    Modérer m'amène à intervenir dans de nombreux posts, mais les seuls langages que je connaisses sont le C# et un peu de VB. Pour vos codes pensez à la coloration.
    Réponse trouvée ->Question Résolue
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut Whismeril,

      ça va bien. Merci.
      Et toi?

      En fait, ce qui me gène c'est le : on nous impose.
      C'est à toi, développeur, d'imposer les choses... Sauf, évidemment, cahier des charges... Je supputes que tu parles de ce cas.

      Mais bon, ici c'est du VBA pour Excel.
      Donc, ce que je préconise dans ce cas :
      • pour une date => toujours utiliser un contrôle calendrier,
      • pour un format d'heure => toujours utiliser le même format.

      Cela évite maintes et maintes erreurs de saisie, de conversion etc...

      f894009, que je salue également, a certainement du apporter la solution adéquate.
      0
      1. Utilisateur anonyme > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Ça va.


        Je ne parle pas vraiment d'u n cahier des charges pudique je développe "pour moi" ou plutôt mon équipe, alors il n'y a pas de cahier des charges formel.

        Mais par exemple si on doit remplir deux formulaire pour un pilote, l'un serait pris en compte pour son carnet de vol et doit être en heure décimale, alors que l'autre ira à la paye en heures sexagésimales.
        C'est un exemple que je connais mais pas concerné directement.

        Dans nos mesures on compte en secondes avec 9 décimales depuis minuit en associant la date du jour, ou en UTC / TIA / TU / GMT etc à la milliseconde....

        --
        0
      2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Utilisateur anonyme
         
        Oui, bon, ça va ! Hein... Tout le monde ne travaille pas dans l'aérospatiale ;-))
        0
      3. Utilisateur anonyme > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Pas spatiale, ça c'est pour les grands, et dans ces milieux il y a les insectes volants et les insectes rempants, je suis dans la secondes catégorie !
        0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a tous,

    Arwill:

    fichier modifie pour les deux formats (peux etre ameliore), voir si ok car chez moi, je dois remplacer le point par une virgule

    https://www.cjoint.com/c/EIzhUfQ4ylf
    0
  4. Arwill Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonsoir à tous,

    D'abord, un grand merci à f894009, cela fonctionne parfaitement. Je dois maintenant décortiquer le code que tu m'a fourni car j'avoue que mon niveau de VBA est assez faible. Voilà une bonne occasion de progresser et d'apprendre.
    A Pijaku, si j'ai choisi cette solution c'est parce que les compteurs dont disposent les utilisateurs sont, selon les machines, en décimal ou en heures minutes.
    La solution n'est donc pas d'imposer un format, mais de travailler avec ceux dont disposent les utilisateurs.
    Si sur ce site tu cherche dans les forums la question "comment convertir des décimales en heures" tu verra qu'il y a des gens pour qui il est inconcevable que 1,50 heures fassent 1h30 et non pas 1h50.
    Pour finir, à mon sens, cela aurait ressemblé à de la facilité d'imposer à nombre de gens un système parce que je ne trouvais pas de solution satisfaisante à notre problème.
    Enfin, Wismerhil (adepte des chroniques de la lune noire), je te rejoins, même si je ne me considère pas comme un développeur. Je cherche simplement à améliorer les outils dont notre équipe dispose afin de faciliter la tâche pour tous.
    Écrire des petits codes, quand on n'est pas développeur professionnel, est en plus un moyen de découvrir plein de domaines connexes et de garder intacte la curiosité qui me fait avancer.
    Encore merci à tous et particulièrement à f894009.

    Arwill
    0