|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Bonjour
Je suis à la recherche de formule afin de calculer le temps d'ouverture d'une action entre la date/heure de début et la date/heure de fin avec une plage d'heures travaillées. Par exemple, cette action peut commencer à le 29 novembre 2011 à 15h00 et terminer le 30 novembre à 9h00 avec une plage horaire de travail de 8h00 à 18h00. Donc cette action a été ouverte 4 heures. Je voudrais exclure aussi les samedi et dimanche non travaillés ainsi que les jours fériés dans mon calcul (que je peux définir depuis une table). Est-ce possible et comment faire ? Merci par avance pour votre aide. |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Tu veux dire que si un jour est férié, tu n'as que l'heure d'embauche de la veille et l'heure de débauche du lendemain; eg. pour le 14/07 : embauche : 13/07 17:00 débauche : 15/07 10:00 ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Tu calcules le nombre de jours ouvrés (cf de nombreux posts sur ce forum), tu multiplie par 10 (8h-18h), tu rajoutes les heures d'ouverture du premier jour et tu enlèves ceux du dernier jours après l'heure indiquée. Il faut peut-être rajouter une petite vérification si le premier ou dernier jour est aussi un jour non ouvré.
|
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Bonjour Daniel.C
C'est une action sur l'ouverture d'un ticket d'incident. J'ai une colonne avec date/heure d'ouverture du ticket et une colonne avec date/heure fermeture du ticket. Donc oui, c'est cela pour ta demande : ouverture ticket : 13/07 17:00 fermeture ticket: 15/07 10:00 avec le 14/07 férié, cela donne : 3 heures d'ouverture de ticket. |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Bonjour à vous deux,
Si je puis me permettre de m'immiscer, on pourrait envisager une fonction basée sur cette formule. Avec prise de fonction : heure1 date1 fin de fonction : heure2 date2 Citation:
Nb jours ouvrés entre 2 dates
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
@ MarcelG :
Sans utiliser VBA, tu as la fonction : NB.JOURS.OUVRES. Pour les versions d'Excel antérieures à XL2007, il faut activer la macro complémentaire "Utilitaire d'analyse".
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
J'ai essayé mais cela n'est pas concluant (cf PJ)
|
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Salut Daniel,
Je suis d'accord. Une réserve cependant consiste en l'obligation de créer une zone comportant la liste des jours fériés. Dans le code, ta liste est gérée et s'adapte à toutes les années. Pour ma part, j'ai codé : avec, dans la plage A1:B2 31/10/2011 17 02/11/2011 12 Code :
La procédure me retourne bien le nombre 5. Bon appétit. A tout à l'heure.
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Bonjour MarcelG
Peux-tu m'expliquer comment mettre cela en place dans mon exemple ? Merci |
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Citation:
__________________
Cordialement. Daniel Citation:
|
||
|
00
|
|
|
#11 |
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
A Daniel,
Si les règles changent, alors ta plage de jours fériés doit aussi changer. Cette méthode n'est donc pas plus dangereuse. Le code aussi peut être adapté et gérer le pays en question. A Lafafmentvotre, Dans un module standard, tu copies les 3 fonctions décrites dans la FAQ. Tu y ajoutes ensuite le code que j'ai reporté plus haut. Tout dépend de la présentation de tes données (cellules début-fin avec date et heure soit 4 au total, userform, résultat dans msgbox ou dans une cellule). N'hésite pas à revenir si nécessaire.
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Re
J'ai essayé ce que tu m'as dit (cf PJ) mais il m'annonce 12 au lieu des 5 que je devrais avoir car ma plage de travail est de 8H00 à 18h00 Début 31/10/2011 17:00, fin 02/11/2011 12:00 avec férié sur 01/11 Help please !!!! |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Lafafment,
J'ai effectué un essai sur ces données, avec succès (Résultat : 5) Je n'arrive pas à ouvrir ton fichier. Pourrais-tu l'enregistrer avec l'extension zip, s'il te plaît. En dernier recours, tu peux le joindre en l'épurant au maximum.
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Hello
Le voici |
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Bonsoir,
Tes cellules sont informées au format date entière (date et heure) et non comme date d'une part et entier d'autre part (pour les heures) ainsi que décrit dans l'exemple ci-dessus. Ta rencontre de difficultés est donc logique. Dans ces conditions, les cellules A1 et A2 sont suffisantes. Il te faut seulement en extraire les nombre de séries et les heures. Soit Code :
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
||
|
|
00
|
|
|
#16 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Hello
Quel talent, cela fonctionne Par contre, afin de pouvoir utiliser tout cela dans mon fichier global, comment vais je pouvoir faire afin de trouver le nombre rechercher dans chaque ligne ? Car je ne vais pas avoir qu'une ligne... Dans le fichier joint, c'est le format qui va être utilisé : Colonne A : début Colonne B : fin Colonne C : résultat Merci par avance pour ton aide |
|
|
00
|
|
|
#17 | ||||
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Bonjour Lafafmentvotre, Bonjour au Forum,
Ici, tu ne raisonnes pas en heures entières mais en temps rééel (heures, minutes, secondes). Auusi, faut-il revoir la fonction de base afin de raisonner en secondes puis convertir le résultat en hh:mm:ss. Autre chose : il est bien convenu que les plages horaires sont de 8 à 18 heures, soit 10 heures au total. La fonction : Code :
Code :
Pour exemple, A2 = 03/10/2011 08:58:42 B2 = 05/10/2011 10:00:09 Résultat C2 = 21 h 01 m 27 s
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
||||
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Re bonjour à tous
Merci pour cette solution qui fonctionne parfaitement. je vais tester avec le fichier initial mais je suis plus que confiant. J'ai juste une question, suis je obligé de lancer la macro à chaque calcul ou existe-t-il un moyen que cela se calcul en automatique ? Merci Marcel |
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Salut Lafafmentvotre,
Je te conseillerais de positionner l'appel de cette procédure au sein d'une procédure évènementielle. (Save, Change....). Elle s'exécuterait ainsi sans autre intervention. Reviens si nécessaire.
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
|
|
00
|
|
|
#20 | ||
|
Membre du Club
![]() Inscription : mars 2005 Messages : 181 ![]() |
Ok, je vais faire cela
Encore mille merci J'ai parlé trop vite Dans le fichier global, date 1 est en colonne B et date 2 en colonne M. Le résultat devant se trouver dans colonne Z J'ai donc logiquement modifié pour Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com