Ecart horaire entre deux postes (planning)

Bonjour,

J'ai un pb apparemment insurmontable a moins d 'utiliser VBA que je ne connais pas.

J'explique

J'ai un planning qui me calcule presque tout sauf l'écart entre deux postes

ex: fin 21h00 reprise 09h30 le lendemain = 12h30

Tout fonctionne bien jusqu'au moment ou je ne travaille pas le lendemain.

Le calcul doit cependant toujours se faire...

Je recherche donc une formule ou quelque chose du genre pour répondre a mon pb.

Je vous mets le "cahier des charges" et un exemple de planning

"L’écart entre la fin du poste de la veille et le poste du jour ne peut pas être inferieur à 12h

Lorsqu’il n’y a pas de travail posté je jour la case durée sera de 0.00 mais la case écart devra indiquer >12 (fixé arbitrairement)

Le calcul doit se faire d’un mois sur l’autre (ex : fin de travail le 31/01/2010 à 18h et reprise le lendemain à 9h30)"

Merci pour la réponse

Polo

Bonsoir

Une proposition de solution

Cordialement

Envoyé: Jeu Fév 25, 2010 10:13 pm

De: polo67

A: Amadéus

Bonsoir,

Je ne pensais pas que c'était possible sans VBA..

Merci en tout cas

Je vous joint le planning réel que j'ai réalisé.

Pourriez vous mettre les formules correspondantes pour les débuts de mois?

Et si vous pouviez explique les formules je suis prenneur.

L'ignorant est celui qui ne pose jamais de questions..Confucius.

Merci

Polo

Polo, merci de tenir compte de ma remarque dans la zone de signature.

Le Forum est là pour le suivi des échanges.

Ceci dit, envoie ton fichier et nous nous ferons, moi ou un autre, un plaisir de le compléter.

Cordialement

Suite mais avec planning réel

Bonsoir,

Je relance ma demande en la faisant ici,

Excuse moi Amadéus

donc voici

Je ne pensais pas que c'était possible sans VBA..

Merci en tout cas

Je vous joint le planning réel que j'ai réalisé.

Pourriez vous mettre les formules correspondantes pour les débuts de mois?

Et si vous pouviez explique les formules je suis prenneur.

L'ignorant est celui qui ne pose jamais de questions..Confucius.

Merci

Polo

Bonsoir

D'autant plus que ce fichier ne correspond en rien à l'exemple précédent puisque la dernière cellule du mois précédent est sur la feuille précédente au lieu d'être sur la même!!

Donc, ça se complique un petit peu plus:

De feuille 2 à 12, même formule en M6

=SI(A6="";"";SI(L6=0;"12:00";("24:00"-(INDIRECT("'"&MOIS(A6)-1&"'!I"&EQUIV(MAX(INDIRECT("'"&MOIS(A6)-1&"'!A33:A36"));INDIRECT("'"&MOIS(A6)-1&"'!A1:A36");0))))+H6))

et formule en M7 incrémentée jusqu'en M46

=SI(A7="";"";SI(L7=0;"12:00";("24:00"-I6)+H7))

Du reste, pourquoi des tableaux jusqu'à la ligne 46. Les mois de 31 jours ne vont que jusqu'à la ligne 36?

Cordialement

re bonsoir

Amadeus

Es tu certain de copier la formule en A7 et non pas en M7?

Edit Amadéus:Simple erreur de texte, le fichier lui est correct

Merci

Polo

-- Ven Fév 26, 2010 10:41 pm --

merci Amadeus

ca fonctionne

mais STP j'aimerais si tu le peux m'expliquer la formule

faire fonctionner c'est bien mais savoir la reproduire c'est mieux

merci en tout cas et tu peux fermer le topic

Polo

Bonsoir

Toujours délicat d'expliquer..

Les formules pour le 1er jour de chaque mois différent de celles des autres jours, pourquoi ?

seule cette partie différe

elle représente la valeur de la colonne I c'est à dire, l'heure de Fin du dernier jour du mois précédent

(INDIRECT("'"&MOIS(A6)-1&"'!I"&EQUIV(MAX(INDIRECT("'"&MOIS(A6)-1&"'!A33:A36"));INDIRECT("'"&MOIS(A6)-1&"'!A1:A36");0))))

Prenons l'exemple sur la feuille "2" qui est donc celle du mois de février.

on sort les parenthèses inutiles

INDIRECT("'"&MOIS(A6)-1&"'!I"&EQUIV(MAX(INDIRECT("'"&MOIS(A6)-1&"'!A33:A36"));INDIRECT("'"&MOIS(A6)-1&"'!A1:A36");0)))

on décortique la formule

INDIRECT(Texte ) l'aide dit que INDIRECT permet d'écrire les formules sous forme de texte.

Donc je peux écrire tout ce qui est entre INDIRECT( et la ) de fin sous forme de texte

éclatons un peu et regardons chaque partie

"'"&MOIS(A6)-1 &"'!I" &EQUIV(MAX(INDIRECT("'"&MOIS(A6)-1&"'!A33:A36")); INDIRECT("'"&MOIS(A6)-1&"'!A1:A36");0))

A6 contient 1/02/10, donc MOIS(A6) = 2 (février) MOIS(A6)-1 renvoie donc1

"'"&MOIS(A6)-1 &"'!I" devient "'1'!I" (il manque juste le No de la dernière ligne du mois précédent

&EQUIV(MAX(INDIRECT("'"&MOIS(A6)-1&"'!A33:A36")); comme vu juste au-dessus est

&EQUIV(MAX('1'!A33:A36)); comme A33 de toutes les feuilles est au minimum le 28 le MAX pour février est le 28, alors que pour janvier, c'était bien sur le 31

Donc pour janvier, cette formule renvoie 31 et notre formule EQUIV

EQUIV( 31;'1'!A1:A36;0) renvoie 36

Notre formule en apparence compliquée se résume à

INDIRECT("'1'!I36") soit '1'!I36 que nous cherchions à obtenir.

Du reste, je te suggères pour bien voir comment se constitue le résultat final de sélectionner la cellule M6, puis, menu "Outils" "Audit de formule" "Evaluation de la Formule" et à partir de là, à chaque click sur "Evaluer" Excel surligne la parie qu'il va traiter au prochain clic.

Cordialement

merci c'est un plaisir de pouvoir compter sur des personnes aussi calées sous excel

bonne soirée ou nuit

Polo

Rechercher des sujets similaires à "ecart horaire entre deux postes planning"