• Initiateur de la discussion Initiateur de la discussion gimli
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gimli

XLDnaute Occasionnel
Bonjour à tous,

voilà je débute sur excel et actuellement en stage, et je cherche à calcuer (en minutes) un temps d'interruption , donc j'ai en F1 la date de début de l'interruption en G1 l'heure de début de l'interruption, en H1 la date de ré"tablissement et en I1 l'heure de rétablissement. En J1 je souhaiterai mettre la durée d'interruption en minutes, mais je ne sais comment y parvenir.

PS: j'ai regardé les autres sujets mais tous mettaient l'heure avec la date, moi ces deux informations sont dans une case différente 😉


Merci d'avance 😉

Gimli
 
Re : Calcul de durées

Bonjour à tous,

peut-être :

Code:
Feries = Array(CDbl(CDate("1/1/" & year(date))), CDbl(CDate("1/5/" & year(date))), CDbl(CDate("14/7/" & year(date))), CDbl(CDate("15/8/" & year(date))), CDbl(CDate("25/12/" & year(date))))
 
Re : Calcul de durées

Bonjour à toi,

Je n'ai absolument pas la solution à ton nouveau problème malheuresement mais je me permet une remarque. Il me semble que tu as oublié un nombre important de jours feriés 😕
Notamment : 08/05/10 , 13/05/10, 24/05/10, 05/04/10, 02/04/10, 01/11/10, 11/11/10 et le 26/12/10

Un petit doute pour le 02/04/10 et le 26/12/10 qui sont feriés en Alsace. Mais il me semble que pour le reste de la france c'est kekette.

De plus ton problème est complexe car certains jours fériés ne change pas de date, exemple le 1 er ou le 8 mai. En revanche Paques et l'ascension par exemple sont en perpetuelle mouvement...
 
Re : Calcul de durées

Bonjour gimli, salut Pierrot, tototiti,

Bien d'accord avec avec Year(Date) mais avec les fêtes mobiles liées à Pâques, les formules sont plus compliquées...

gimli, faites une recherche sur le forum et tâchez de vous débrouiller.

A+
 
Re : Calcul de durées

Re,

En adaptant une formule trouvée sur le forum, voici une fonction VBA donnant le n° de série du dimanche de Pâques :

Code:
Function PAQUES(dat As Date) As Long
PAQUES = Evaluate("ROUND(DATE(" & Year(dat) & ",4,MOD(234-11*MOD(" & Year(dat) & ",19),30))/7,0)*7-6") 'numéro de série du jour
End Function

A mettre dans un Module. Et en VBA pour les jours fériés :

lundi de Pâques => PAQUES(Date) + 1

jeudi de l'Ascension => PAQUES(Date) + 39

lundi de Pentecôte => PAQUES(Date) + 50

gimli, vous pouvez utiliser directement ces n° de série dans le Array, pas besoin de CDbl(CDate()).

Bien sûr si l'on veut obtenir la date de Pâques au format Date :

Code:
MsgBox CDate(PAQUES(Date))

A+
 
Dernière édition:
Re : Calcul de durées

Bonjour gimli, le fil, le forum,

Je reviens sur ce fil car je n'ai jamais aimé le calcul des minutes : la durée d'exécution est trop longue.

Mais grâce au fil suivant j'ai trouvé LA bonne méthode :

https://www.excel-downloads.com/thr...ebut-dune-duree-et-contraintes-horair.144094/

Il faut incrémenter par pas de 1 jour mais traiter autrement le premier et le dernier jour.

Voyez donc le fichier joint avec ce code beaucoup plus logique et rapide :

Code:
Option Explicit

Dim t1 As Date, t2 As Date, jour As Date

Function Minutes(deb As Date, fin As Date) As Long
Dim dat As Long, t As Date, dur As Date
Application.Volatile
t1 = TimeValue("8:0")
t2 = TimeValue("18:0")
jour = t2 - t1
dat = Int(CDec(deb))
t = TimeValue(deb)
dur = PremDer(dat, t)
For dat = dat + 1 To Int(CDec(fin))
  If Weekday(dat, 2) < 6 And IsError(Application.Match(dat, [Feries], 0)) Then dur = dur + jour
Next
t = TimeValue(fin)
Minutes = 1440 * (dur - PremDer(dat - 1, t))
End Function

Function PremDer(dat As Long, t As Date) As Date 'traite le 1er et le dernier jour
If Weekday(dat, 2) < 6 And IsError(Application.Match(dat, [Feries], 0)) Then
  If t <= t1 Then PremDer = jour
  If t > t1 And t < t2 Then PremDer = t2 - t
End If
End Function

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
177
Réponses
14
Affichages
866
Réponses
3
Affichages
696
  • Question Question
Réponses
3
Affichages
648
Réponses
1
Affichages
821
Réponses
2
Affichages
569
Retour