Conversion decimal en heures par userform

Résolu
Arwill Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
Arwill Messages postés 10 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

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Utilisateur anonyme > pijaku Messages postés 12263 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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761 > Utilisateur anonyme
 
Oui, bon, ça va ! Hein... Tout le monde ne travaille pas dans l'aérospatiale ;-))
0
Utilisateur anonyme > pijaku Messages postés 12263 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
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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   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