Operation avec des heures (Excel)

Fermé
FlOM73 - 7 mars 2008 à 22:08
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 - 27 août 2010 à 00:49
Bonjour,
Dans mon programme je cumule des temps de tâches en heure (dans une variable déclaré as Date) et des temps de travail en heures décimales (variable déclarée as Integer).

Le cumul se fait bien, j'arrive à inscrire les temps totaux sur ma feuille mais ça se complique quand je veux calculer le pourcentage afferant à chaque taches par rapport au temps de travail. C'est comme si Excel ne voyait pas ce qu'il a lui même écrit !

Par exemple pour un temps de tache ayant duré 446:25:00, en fait Excel a en mémoire 18/01/1900 14:25:00.
Alors pour transformer ce temps en heure decimale, j'ai dû monter une usine à gaz :
- si la chaine est de longueur 8 c'est direct : heure+minute/60+second/6000.
- mais si la chaine de caractere est de longueur 19 je recupère le nombre de jour entre la chaine et 31/12/1899 que je multiplie par 24 et auquel j'ajoute les 14h25min.

Ca marche à peu près mais les chiffres après la virgule sont faux et c'est trop compliqué pour être fiable (pourquoi 31/12/1899 ?).

Il existe probablement une solution plus élégante :
- peut-être ai-je mal déclaré mon format date (les totaux affichés sont bien justes mais peut-être grace au format de la cellule ?) ?
- existe-il une fonction Excel qui transforme directement les heure/minute/seconde en décimale ? Ou l'inverse ?
- que faire ?

Florence.
A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 700
7 mars 2008 à 23:28
bonjour

un temps de tache ayant duré 446:25:00, en fait Excel a en mémoire 18/01/1900 14:25:00.

C'est normal car avec le format date, les jours sont des entiers et les heures des 24ièmes de jour .

Donc quand tu dépasses 24h, tu arrives dans les entiers et donc dans les jours qui commencent au 1/1/1900 à 0:00.

Pour avoir le format 446:25:00 il faut utiliser [h]:mm:ss car alors excel affiche les heures totalisées sans tenir compte des jours.

Si tu veux transformer cette cellule date en heures décimales, il te suffit de les multiplier par 24 pour passer les heures en entiers et les minutes en centièmes d'heure.

Tu n'as pas à t'occuper de la chaîne texte d'affichage mais tu ne tiens compte que de la valeur du nombre représentant le "temps".

J'espère que je te simplifie ton usine à gaz ?

Mais au prix où va aller l'énergie c'est certainement une erreur, vaudrait mieux garder ton usine...
2
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
7 mars 2008 à 23:44
Bonsoir tout le monde,

"Si tu veux transformer cette cellule date en heures décimales, il te suffit de les multiplier par 24 "
et de mettre la cellule en format standard ou nombre

eric
2
Je suis épattée. C'est simple et ça marche. Dire que j'y ai passé >2h pour faire un truc bancale...
Merci à tous les deux.

Florence.
0
bonjour,
désolée je dois être bête mais je n'y arrive pas....
je veux des heures dans les cellules de ma colonne à ce format 35h00
puis faire le total du nombre d'heures total :s
et j'ai toujours 0 et la date en 1900 :s
Personne pour m'aider si vous pouvez ce sera génial!!
merci d'avance
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
27 août 2010 à 00:49
Bonsoir,

le format de saisie de heures dans excel doit être hh:mm, donc 35:00
Et si ton total peut dépasser 24h tu dois mettre en format personnalisé: [h]:mm

eric
0