Conversion decimal en heures par userform

Résolu/Fermé
Arwill Messages postés 10 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 20 octobre 2023 - 24 sept. 2015 à 19:23
Arwill Messages postés 10 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 20 octobre 2023 - 25 sept. 2015 à 19:03
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

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
25 sept. 2015 à 09:29
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
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
Modifié par Whismeril le 25/09/2015 à 09:40
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
Modifié par pijaku le 25/09/2015 à 10:10
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
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
25 sept. 2015 à 10:56
Ç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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743 > Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024
25 sept. 2015 à 11:08
Oui, bon, ça va ! Hein... Tout le monde ne travaille pas dans l'aérospatiale ;-))
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
25 sept. 2015 à 13:41
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 25/09/2015 à 09:49
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
Arwill Messages postés 10 Date d'inscription jeudi 27 août 2015 Statut Membre Dernière intervention 20 octobre 2023
25 sept. 2015 à 19:03
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