Calcul du delai d'intervention avec 4 parametres
Sujet: calcul du délai d'intervention avec 4 paramètres
Problème: je souhaite calculer le temps écoulé entre la demande et le moment ou la demande est prise en charge. Il faut exclure les jours fériés; les week-end et les heures non ouvrées.
heures ouvrées: 8h-18h
Je veux avoir une fonction avec 4 paramètres:
1- date de début
2- date actuelle
3- date d'intervention
4- Jours fériés
Autres détails:
Si l'heure de début d'intervention est inexistant alors demande toujours en cours
Si l'heure de déduit d'intervention existe alors mettre un maux demande en cours de traitement ou demande traitée
Merci pour votre aide; je suis débutant
Bonsoir,
Fonction qui calcule le délai entre demande et intervention (ou entre demande et date-heure actuelle si intervention n'a pas encore eu lieu).
Function HOUVCONS(dd, ddi, JF As Range)
Dim j%, i&, hd, hdi
Application.Volatile
If ddi = 0 Then ddi = Now
If Hour(dd) < 8 Then
dd = Int(dd) + 8 / 24
ElseIf Hour(dd) > 18 Then
dd = Int(dd) + 1 + 8 / 24
End If
If WorksheetFunction.CountIf(JF, Int(dd)) > 0 Then dd = dd + 1
If Hour(ddi) < 8 Then
ddi = Int(ddi) - 1 + 18 / 24
ElseIf Hour(ddi) > 18 Then
ddi = Int(ddi) + 18 / 24
End If
For i = Int(dd) + 1 To Int(ddi)
If Weekday(i) Mod 7 > 1 Then
If WorksheetFunction.CountIf(JF, i) = 0 Then j = j + 1
End If
Next i
hd = dd - Int(dd): hdi = ddi - Int(ddi)
If hd > hdi Then
HOUVCONS = j * 10 / 24 - (hd - hdi)
Else
HOUVCONS = j * 10 / 24 + (hdi - hd)
End If
End FunctionNB- J'ai opté pour cette solution car ton propos était un peu nébuleux... Pour l'affichage de "en cours" ou autre, tu peux utiliser des fonctions classiques.
Outre les modifications liées au déroulement du calcul, certaines modifs de ton code initial ont 2 raisons distinctes, la première parce que j'ai dû désactiver les macros pour ouvrir ton fichier sans qu'Excel plante, et je l'avais oublié au moment de tester (d'où des changements dont le nom de la plage Fériés avant que VBA m'informe qu'il ne pouvait s'exécuter !), la seconde est que j'évite autant que possible des noms de variables longs surtout lorsqu'on doit les écrire plusieurs fois, et au-delà de 3 caractères, je commence à trouver que c'est long !
Cordialement.
Merci MFerrand mais j'ai l'impression que ça ne marche pas. peut être que je m’étais mal exprimé (désolé) mais voici un exemple de ce que je souhaite avoir:
1er cas:
date début: 17/02/2017 12:30:00
date en cours: 20/02/2017 09:30:00
date de débute d'intervention existe: vide
heures déjà écoulées avant intervention = 07:00 ici j'ai pas encore l'heure d'intervention donc demande toujours en cours
2ieme cas:
date début: 17/02/2017 12:30:00
date actuelle: 20/02/2017 09:30:00
date de débute d'intervention existe: 17/02/2017 17:30:00
heures déjà écoulées = message(demande déjà traité)
Petite note: les heures ouvrées: 8h-18h
; ne pas tenir compte des heures de week-end et les jours fériés
Bonjour,
Ton titre indiquait clairement "délai d'intervention".
Un délai d'intervention est la durée écoulée de la demande à l'intervention...
Tes propos étaient, comme je l'ai indiqué peu clairs, faisant intervenir la date et l'heure courante...
Face aux incertitudes, j'ai bâti une fonction qui calcule le délai d'intervention, ou à défaut, si l'intervention n'a pas eu lieu, le délai écoulé depuis la demande en prenant en compte la date et l'heure courante.
Il semblerait dans tes derniers propos que, malgré ton titre, le délai d'intervention est justement ce que tu ne calcules pas !
Tu sais ce que calcule la fonction. A toi de l'adapter selon ce que tu souhaites...
J'ajoute que j'aurais tendance à considérer que le délai d'intervention (donc, une fois que l'intervention est mise en oeuvre) est un indicateur utile, alors que le délai écoulé ne l'est pas tant que l'intervention n'est pas lancée...
Donc, je ne vais pas reprendre cette fonction pour qu'elle ne calcule plus le délai d'intervention, alors que je considère que c'est ce qui doit être calculé en priorité ! (J'aurais le sentiment de faire n'importe quoi, pour ne pas dire plus...)
Cordialement.
Bonjour, mon contexte consiste à anticiper les interventions car dépasser les délais d’intervention il y a des pénalités pour l’entreprise. Une fois qu’on a reçu la demande, on sait par exemple que nous avons 50 heures pour intervenir (hors heures fermetures, week-end et jours fériés). Alors notre idée c’est d’anticiper : c’est-à-dire pour le manager à chaque fois qu’il actualise ou ouvre le fichier Excel , on peut voir les demandes qui sont proches de l’échéance et donc on peut dire aux équipes de prioriser tel ou tel demande.
Comme je l'ai dit, la fonction que j'ai proposée fait ce calcul !
Bonjour
Etant dans un cas similaire merci de ce fichier. Par contre je souhaiterais savoir s'il est possible d'y apporter quelques modifications:
- Mes demandes d'interventions sont soumise à plusieurs priorité (en fonction des systèmes). Pour chaque priorité correspond un délai d'intervention et un délai de réparation. Comment peux-t-on intégrer ces délais dans les calculs
- Peux-t-on à la place de calculer le nombre d'heure écoulées calculer l'heure maximum d'intervention :exemple ma demande tombe à 9h, en priorité 2 (16h ouvrées pour intervenir, en tenant compte des jours fériés(incluant les fermetures de site, je dispose pour cela d'une liste comprenant ces jours et à laquelle je peux faire référence) et wk) mon technicien doit intervenir au plus tard jeudi à 9h
- Peux-t-on faire le même calcul pour la date de fin de réparation (basée sur le délai de réparation). En reprenant le calcul ci-dessous (délai de réparation 24h ouvrées) soit vendredi à 9h
Je ne peux pas vous joindre d'exemple de mon fichier il est sur le réseau et on a pas le droit (ni la possibilité) de sortir des documents
J'ai déjà essayé avec des formules mais mon calcul bug. Je ne sais pas comment y intégrer les notions d'horaires d'ouvertures de site (8-16h35)
L'idée étant de permettre au technicien et au chef d'équipe d'anticiper les écarts de délai et mettre en place les actions nécessaires (communication à destination du demandeur, relance fournisseurs,...)
En espérant que ma demande soit claire
Merci d'avance