Calcule nombre d'heures repos

bonjour a tous

Je suis toujours très débutante en vba a mon dam),

voici mon projet que je ne sais pas faire et que je souhaiterais en VBA

je vous joint un fichier que je rempli a la main et une calculette chaque jour et chaque fin de week end (pas bien !!). ce fichier comporte 2 onglets

Le premier calcul le temps de repos octroyer en semaine d'astreinte (premier onglet) :selon ce principe :

- 2 plages :

1 - l'heure de sortie de travail +11h

2 - l'heure de reprise de travail -11

on examine les deux périodes de 11 h

on calcule les temps pour chaque inventions et on regarde la plage la moins impactée par les interventions

exemple :

heures sortie de travail 16h30

heure reprise 7h

interventions : 16h30 19h30 = 3h d'inventions ; 23h30 00h30 = 1h d'invention ; 00h45 02h30 = 2h30 d'intervention

donc 4 h effectuées sur la plage 1 et 3h30 sur la plage 2

le temps de repos sera = 3h30

Le deuxième calcul le temps de repos octroyer en week end d'astreinte (second onglet) : 3 plages

1 - l'heure de sortie de travail vendredi jusqu'à minuit samedi minuit

2 - samedi minuit à dimanche minuit

3 - dimanche 20 h à l'heure de reprise de travail

on examine chaque plage et les temps de repos entre chaque intervention :

si la plage observée a un temps = 11 la récup sera de 0h pour cette plage)

sinon on prend la période de repos la plus longue de la plage et l'a déduit a 11 = le nombre d'heure a récupérer pour la plage

on fait de même pour les plages 2 et 3 pour on cumul les résultats trouvé des 3 plages

exemple

heures sortie de travail 17 , reprise 7h30

intervention de :

samedi 23 février 2013 11:00 15:30 = 18h de repos sur la plage 1

samedi 23 février 2013 22:00 00:00 = 6h30 de repos sur la plage 1

donc pas de repos sur la plage 1

dimanche 24 février 2013 08:00 09:00 = 8h de repos sur la plage 2

dimanche 24 février 2013 13:00 14:30 = 4h de repos sur la plage 2

et 9h30 de repos sur la plage 2 (pour atteindre la fin de plage 2)

donc la période de la plage 2 = 9h30 - 11 = 1h30 + 0 de la plage 1 = 1h30 de repos

je souhaite que ce soit en VBA afin de ne pas écrabouiller une formule de calcule

Pourriez vous m'aider

merci d'avance

887masque.xlsx (14.87 Ko)

Bonjour

Pour le lundi

le temps de repos sera = 3h30

En vertu de quoi? comment le calculons-nous?

Tu parles de période de 11h

quelle période de 11h? Où est elle?

Cordialement

Bonjour

J'ai essayé, pas le même résultat que toi pour la semaine

A tester

bonjour a tous

en effet c'est le calcul des 11 heures de repos

donc

l'intervention de 23h30 a 00h00 et sur les plages -11 et + 11 donc cette heure et cumuler au +11 cela donne 4 heures et cumuler aussi au -11 ce qui donne 3h30 donc sa récup est donc de 3h30.

> c'est comme si ex: son intervention aurait commencer 16h30 et finit a 20h05 il serait 3h35 sur la plage +11 mais aussi 5mm sur la plage -11

> je ne sais pas si j'ai été assez claire

merci d'avoir bosser dessus je sais que cela est compliqué car les 2 plage se chevauchent. 16h30 + 11 h donne la fin de plage à 3h30 le lendemain et 7 - 11 donne le début la plage suivante 20h la veillle

rebonjour

voici qq chose qui pourra peut être vous aider pour une meilleur compréhension du calcul

merci encore

Bonjour

Oui je m'étais fais le même graphique (moins beau) mais entre 0h45 et 2h30 il n'y a qu' 1h45 et pas 2h30 ou alors il y a de nouvelles règles que je ne connais pas

Donc la plage 2 est impactée de 1h45 + 1h00 = 2h45

banzai tu as raison

je vais faire remonter la bétise

merci de me l'avoir fait remarqué

ça a l'air de bien fonctionner pour la semaine

merci

Banzai

merci pour le repos semaine cela fonctionne bien

mais le repos pour le week end bug aurait tu la gentillesse de voir ce qui ce passe

je t'en remercie par avance

Bonjour

A vérifier

Et à faire des tests plus poussés

Banzai

j'ai testé avec des nouvelles valeur cela bug toujours

sur la ligne

MsgBox "Journée non comptabilisée " & Range("A") & J

j'ai mis un commentaire pour que la dernière plage soit du dimanche 20h00 jusqu'à l'heure d'embauche

encore une petite touche de correction et cela va me sauver

Merci

Bonjour

C'est vrai que ce n'est pas sympa, pour aucun des participants des forums, de ne pas savoir que la même question est posée ailleurs

Pas le fait de poser plusieurs fois la question c'est de ne rien dire

Bien sur tout le monde peut faire ce que qui lui convient le mieux et dans le cas là l'éthique passe en second plan

Dommage

Cela ne m'empêchera pas d'aider dans la mesure de mes connaissances

Revenons en à nos moutons horaires

L'erreur est due à une erreur de syntaxe : Corrigée dans les 2 macros

Il faut que les dates du Vendredi et du Lundi soient marquées en B3 et C3

Il faut que tu m'indiques quel temps faut-il trouver ?

Banzai

il doit avoir normalement 0 heures de rattrapage

et pour répondre pour l'autre site : c'est bien le forum d'Excel Pratique que je fréquente le plus ! pour apprendre, me faire dépanner,

il est certainement le site que j'ai trouvé le plus complet et le plus convivial avec beaucoup d'explications claires, des fichiers joints ect... et la cerise sur le gâteau c'est que des personnes compétentes vous aident.

j'ai bien vu des même post qui ont été postés ici et sur d'autres sites. si j'avais eu une réponse qui m'avais sortie de mon impasse j'aurais eu la correction de clore mon post et remercier les personnes qui m'ont aidé. Mon idée est aussi d'apprendre

en plus il n'y a que banzai qui ma répondu sachant que le calcul des heures peut en faire fuir beaucoup

merci a toi

bonjour Banzai

la macro tourne mais les résultats ne sont pas bon

dans le fichier que je te retourne on devrait obtenir 0 heures de rattrapage en effet

l'intervention n'est que samedi

de 2 a 4 h et de 9h30 à 13h00 donc de 17h00 a 2h00 ca fait 8h de repos, de 4 a 9h30 ca fait 5h30 et de 13h à la fin de la plage 1 ca fait 11h donc le plus grand nombre de repos en heures de la plage 11, -11 = 0 et comme du dimanche à la reprise il n'a pas travaillé ça fait 0 heures

est ce que tu peux corriger

je t'en remercie grandement d'avance

Bonsoir

Désolé mais ce n'est pas évident tous ces cas

J'ai initialisé les variables à leur maximum, comme cela si dans une plage il n'y a pas de dérangement on considérera que temps de repos est pris

A tester

bonsoir a toi

le temps de repos est le total qu'il doit prendre a la fin du week end

total des plages 1 2 et 3

si tu changes 13:00 en 15h00 il aura 2 heure a prendre sur la plage vendredi samedi même s'il n'a rien fait dimanche ou lundi matin

je ne sais pas si je me suis exprimée correctement

merci

Bonsoir

A force on va y arriver

Si ce n'est pas bon, il faudrait que tu me fasses plusieurs cas (avec le résultat) que je puisse tester afin de mettre au point cette macro

Bonjour à tous,

je me suis également penché sur le problème :

Petite précision pour la calculette du week end : celle ci est composée de 2 tableaux... le second tableau, à droite, n'est, certes, pas très esthétique mais il permet de visualiser le temps de repos entre 2 interventions pour chaque plage... ce tableau permet ensuite de déterminer la tranche de repos la plus longue pour chaque plage mais peut aussi s'avérer utile pour l'utilisateur, j'ai donc préféré faire le calcul sur la feuille excel plutôt que dans la mémoire.

Pour l'instant, la macro ne calcule que le max pour chaque tranche...tout en bas du tableau... si le principe est validé, alors, on pourra calculer le nombre d'heures à récupérer.

53calculette.xlsm (54.65 Ko)

merci a tous les 2 game over et banzai

je regarde cela demain

et je test

je sais banzai que c'est compliqué

bonjour BANZAI et Game Over,

voici des fichiers d'exemples de calcul

merci de me dire si cela vous suffit pour corriger

j'ai l'impression que cela me donne pas les bons calculs quand il y qu'une intervention et que les autres plages sont a 0

a bientôt

Rechercher des sujets similaires à "calcule nombre heures repos"