calculer heure entre deux dates

Neptune64

XLDnaute Nouveau
Bonjour, j'ai cette formule que fonctionne très bien pour me calculer le nombre d'heure entre 8h et 17h
Code:
=(NB.JOURS.OUVRES(A23;B23)-2)*9/24+17/24-MOD(A23;1)+MOD(B23;1)-8/24+0/1440
Quelqu'un pourrait-il m'aider à la modifier pour déduire 1h entre 12h et 13h.
Je cherche mais je ne trouve pas. Et j'ai regardé les discussions similaires mais je ne trouve pas de solutions
Merci de votre aide
 
Dernière édition:

hoerwind

XLDnaute Barbatruc
Re : calculer heure entre deux dates

Bonjour,

As-tu compris la formule, il me semble que non ?

(NB.JOURS.OUVRES(A23;B23)-2)*9/24
Multiplier par 9/24 (=9:00) le nombre de jours ouvrés - 2 (le premier et le dernier jour)
+17/24-MOD(A23;1)
additionne le nombre d'heures du premier jour
la fonction MOD extrait le nombre d'heures de la date du premier jour
+MOD(B23;1)-8/24
additionne le nombre d'heures du dernier jour
la fonction MOD extrait le nombre d'heures de la date du dernier jour
+0/1440
je ne vois pas à quoi cette partie de formule pourrait servir.

Si tu as un temps de pose de 12:00 à 13:00
Dans la première partie de la formule, remplacer 9/24 par 8/24
Soustraire 1 heure si l'heure de début (premier jour) est <=12:00 (ou 12/24, ou 1/2)
Soustraire 1 heure si l'heure de fin (dernier jour) est >= 13:00 (ou 13/24)

La formule deviendra donc :
Code:
=(NB.JOURS.OUVRES(A23;B23)-2)*8/24+17/24-MOD(A23;1)+MOD(B23;1)-8/24-(MOD(A23;1)<=12/24)/24-(MOD(A24;1)>=13/24)/24

Il faut diviser le résultats deux des derniers MOD par 24 parce que l'unité "temps" sous tous les tableurs est le jour, 1 heure vaut donc 1/24

Fais quelques tests et vois si cela répond à ta demande.
 

Neptune64

XLDnaute Nouveau
Re : calculer heure entre deux dates

Bonjour hoerwind

Merci pour ta réponse. En effet tu as raison je ne comprenais pas la formule et je te remercie pour ton explication.
J'ai essayé, mais sur 1 jour entre 12h et 13h, ça ne me déduit pas l'heure. Par contre sur plusieurs jours, si la date du dernier jour est avant 12h ça fonctionne. Mais si la date dépasse les 12h ça me compte 1h de trop, la dernière pause de 12h à 13h
Alors j'ai essayé comme ceci, mais là ça me fait le sens contraire.

Code:
=(NB.JOURS.OUVRES(A9;B9)-2)*8/24+17/24-MOD(A9;1)-(MOD(A9;1)<=12/24)/24-(MOD(A9;1)>=13/24)/24+MOD(B9;1)-8/24-(MOD(A9;1)<=12/24)/24-(MOD(A9;1)>=13/24)/24


HTML:
Date 1                         	Date2	       Heure    Min.  	info
lun 5.10.09 10:00	lun 5.10.09 10:00	00:00	00	Ok
lun 5.10.09 10:00	lun 5.10.09 12:00	02:00	120	Ok
lun 5.10.09 10:00	lun 5.10.09 14:00	04:00	240	Ici je devrais avoir 3h et non 4h
lun 5.10.09 8:00	mar 6.10.09 10:00	10:00	600	Ici c'est ok
lun 5.10.09 8:00	mar 6.10.09 17:00	17:00	1020	mais ici je devrais avoir 16h et non 17h
 

hoerwind

XLDnaute Barbatruc
Re : calculer heure entre deux dates

Bonjour,

Il est toujours préférable, lorsqu'on ne comprend pas une formule, d'en demander l'explication avant de demander de la modifier.

L'erreur dans la formule, je l'y ai placée intentionnellement pour m'assurer que tu maîtrises bien la formule, faute de quoi j'aurai perdu mon temps en essayant de t'aider.

Ou bien tu n'as pas encore compris la formule, ou bien tu ne t'es pas donné la peine de la corriger.
Pourtant tu avais bien trouvé l'endroit :
si la date dépasse les 12h ça me compte 1h de trop

Je te disais : Soustraire 1 heure si l'heure de fin (dernier jour) est >= 13:00 (ou 13/24)
C'était donc dans le dernier argument de la formule qu'il fallait chercher.
Le denier jour n'est pas A2 mais bien B2.

Modifie cela et la formule renverra le bon résultat.
 

Neptune64

XLDnaute Nouveau
Re : calculer heure entre deux dates

Bonjour,
Tu as raison, et j'essaye toujours de comprendre ce que je fais. Je te remercie et j'apprécie ton aide et ta façon de faire. Tu n'as pas perdu ton temps. Mais je n'osait pas trop demander des explications, j'avais tord !!!
J'avais bien vu que pour l'heure de 12h à 13 la partie de formule portait que sur la cellule A et pas la B. Mon erreur était que je mettais )<=12/24)/24 et )>=13/24)/24 par cellule parce que je me disais il y a une fois après 12h et une fois avant 13h pour chaque date, donc pour moi par cellules. Erreur, comme il peut y avoir la même date sur les 2 cellules mais c'est l'heure qui compte pour cette partie.

Comme j'aimerais bien comprendre de quel façon ça se calcul, j'ai détaillé la formule avec la date ci dessous, j'arrive juste, mais je ne suis pas sur que je calcul juste. J'ai essayé avec d'autre heures mais une fois ça marche et une fois non. Donc je pense que ce n'est pas la bonne manière. Je ne sais pas si c'est possible posible de calculer comme ceci ?

Date A :A23 = 05.10.2010 10 :00 date B : B23 = 05.10.2010 14 :00 = 3h ou 180 min

(NB.JOURS.OUVRES(A23;B23)-2)*9/24
Multiplier par 9/24 (=9:00) le nombre de jours ouvrés - 2 (le premier et le dernier jour)
= 9h : c’est le nombre d’heure par jour . Date A et Date B

+17/24-MOD(A23;1)
additionne le nombre d'heures du premier jour
= +17h – 10h = 7h : comme la journée fini à 17h et que l’heure de début est 10h.
Date A : 9h - 7h = 2h

la fonction MOD extrait le nombre d'heures de la date du premier jour
+MOD(B23;1)-8/24
additionne le nombre d'heures du dernier jour
= +14h - 8h = 6 h : Comme la journée commence à 8h et termine à 14h
Date B : 9h – 6h = 3h

Donc 2h + 3h = 5h

-(MOD(A23;1)<=12/24)/24 Date A = 10 < 12 donc -1

-(MOD(B24;1)>=13/24)/24 Date B = 14 >13 donc -1

5-1-1=3h
 

hoerwind

XLDnaute Barbatruc
Re : calculer heure entre deux dates

Bonjour,

Cette fois il me semble que tu as compris !

Le raisonnement est exact, sauf petite erreur de frappe :
(NB.JOURS.OUVRES(A23;B23)-2)*9/24
Il faut multiplier par 8/24 et non 9/24
8h : c’est le nombre d’heures ouvrées.

Éclater une formule permet de la comprendre plus facilement et de corriger d'éventuelles erreurs, vois la pièce jointe.
 

Pièces jointes

  • HeuresEntreDeuxDates.xls
    18.5 KB · Affichages: 309

Statistiques des forums

Discussions
312 489
Messages
2 088 848
Membres
103 972
dernier inscrit
steeter