heures de nuit

  • Initiateur de la discussion Bigcar
  • Date de début
B

Bigcar

Guest
Bonjour,
je cherche une macro ou une formule qui me permettrait de calculer les heures de nuit travaillées ( de 21h à 6h par exemple) car aucun programme ne le fait
Merci
 
B

bigcar

Guest
Re: c'est pas ça

Merci de votre aide
Ce que je veux en fait, c'est définir une plage horaire (21h à 6h) qui correspond à l'heure de nuit et excel me dit combien d'heures de nuit j'ai travaillé, exemple:

je travaille de 15h à 23h, ce qui donne 2h de nuit
je travaille de 3h à 10h, ce qui donne 3h de nuit

Merci
 
B

bigcar

Guest
Re: c'est pas ça

salut steph,
l'exemple en fait c'est ce que je disais juste avant

"je travaille de 15h à 23h, ce qui donne 2h de nuit
je travaille de 3h à 10h, ce qui donne 3h de nuit"

l'exemple n'est pas compliqué mais que c'est dur à réaliser !
merci
 
T

Ti

Guest
Re: c'est pas ça

je t'ai fait ça rapidement, vérifie s'il n'y a pas d'erreurs dans certains cas que j'aurais oubliés
 

Pièces jointes

  • Classeur3.xls
    21 KB · Affichages: 96
  • Classeur3.xls
    21 KB · Affichages: 101
  • Classeur3.xls
    21 KB · Affichages: 96
A

andré

Guest
Re: si, c'est ça !

Je n'avais pas vu que Ti t'avais envoyé une réponse entre l'heure du midi.
Ci-joint la mienne.
Je n'ai pas eu le temps de tout condenser en une formule, mais cela fonctionne, c'est ce qui est le plus important !
André.
 

Pièces jointes

  • heures_de_nuit.xls
    26 KB · Affichages: 97
S

STéphane

Guest
Re: si, c'est ça !

bonjour

avec une fonction personnalisée de frédéric sigonneau
ou D1 et D2 sont les cellules contenant les heures de début et fin

regardez à tout hasard s'il parle sur son site de cette fonction qu'il a conçue récemment

Function HeuresNuit(D1#, D2#)
Dim Nuit#, DebJour#, DebNuit#


' DebJour = TimeValue(Format(DébHnuit, "hh:mm:ss")) * 1
'DebNuit = TimeValue(Format(FinHnuit, "hh:mm:ss")) * 1


DebJour# = TimeValue("6:00:00")
DebNuit# = TimeValue("21:00:00")

Select Case D1 - D2
Case 0: Nuit = DebJour + (1 - DebNuit)
Case Is < 0:
Select Case D2
Case Is <= DebJour: Nuit = D2 - D1
Case Is > DebNuit:
If D1 < DebNuit Then Nuit = D2 - DebNuit Else Nuit = D2 - D1
Case Else
If DebJour - D1 > 0 Then Nuit = DebJour - D1
If D2 - DebNuit > 0 Then Nuit = Nuit + (D2 - DebNuit)
End Select
Case Is > 0:
Select Case D1
Case Is < DebJour: Nuit = (DebJour - D1) + (1 - DebNuit)
Case Is < DebNuit: Nuit = 1 - DebNuit
Case Else: Nuit = 1 - D1
End Select
If D2 > DebJour Then Nuit = Nuit + DebJour Else Nuit = Nuit + D2
If D2 > DebNuit Then Nuit = Nuit + (D2 - DebNuit)
End Select

HeuresNuit = Nuit * 24

End Function 'fs


Bye
Stéphane
 

Discussions similaires