Rechercher : dans
Par :

Operation avec des heures (Excel)

Dernière réponse le 8 mar 2008 à 00:34:18 FlOM73, le 7 mar 2008 à 22:08:48 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Excel

Meilleures réponses pour « Operation avec des heures (Excel) » dans :
Tableur - Les opérateurs texte VoirL'opérateur de concaténation Les tableurs offrent généralement un opérateur, appelé opérateur de concaténation, permettant de joindre deux valeurs textuelles. L'opérateur de concaténation, noté &, s'utilise de la manière suivante : Dans...
SQL - Opérations ensemblistes VoirLes opérations ensemblistes Les opérations ensemblistes en SQL, sont celles définies dans l'algèbre relationnelle. Elles sont réalisées grâce aux opérateurs : UNION INTERSECT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans...
Java: les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les...

1

gbinforme, le 7 mar 2008 à 23:28:17
  • +2

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...
Toujours zen

Répondre à gbinforme

2

eriiic, le 7 mar 2008 à 23:44:16
  • +1

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

Répondre à eriiic

3

 FlOM73, le 8 mar 2008 à 00:34:18

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.

Répondre à FlOM73