Erreur sommeprod

Bonsoir,

J'ai utilisé la formule matricielle ci-dessous pour calculer des heures travaillées, heures de nuit, heures de jour fériées et heures de nuit fériées.. Malheureusement le code ne prends pas en compte le dernier cellule des tableaux ie le travail effectué les dimanches de 20h-00h, j'ai fouillé fatigué mais je n'ai pas pu trouver le bug.

S'il vous plait qui peut m'aider à résoudre ce problème?

Ci-joint le fichier, il s'agit de la feuille HEURES.

SI(C$4<>"";SI(SOMMEPROD((C$4>=Leave[depart])*(C$4<Leave[retour])*(HEURES!$A8=Leave[Agents]));0;SOMMEPROD(--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;EQUIV(HEURES!C$4;DECALER('QUART PAR AGENT'!$C$3;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;1;29);0);8;5)="X")*--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;8;1)=HEURES!$A8)*((TOV!$A$4:$E$4)-(TOV!$A$2:$E$2))));"")
29test2.xlsm (127.83 Ko)

Bonsoir,

je crois que SOMMEPROD est déjà matricielle... Donc il n'est pas utile de valider les formules "en matricielle"...

Ceci n'apporte rien à votre problème, ou plutôt votre solution... , mais cela a le mérite de faire un "Up" de votre message...

@ bientôt

LouReeD

Salut!

Je vois que ça corse un peu.

Bon, en créant une colonne supplémentaire juste avant la colonne AD, ca marche mais malheureusement si je fais ca les macros ne marchent plus pour la mise à jour de la feuille quart par agent!

Peut etre que VBA sera une bonne solution. Ben, je ne sais plus comment faire!

Merci!

Bonsoir,

je crois que SOMMEPROD est déjà matricielle... Donc il n'est pas utile de valider les formules "en matricielle"...

Ceci n'apporte rien à votre problème, ou plutôt votre solution... , mais cela a le mérite de faire un "Up" de votre message...

@ bientôt

LouReeD

Je ne vous suis pas .. Pouvez vous m'expliquer pur que je comprenne mieux , avec votre proposition , le problème est il réglé..

Merci!

Non le problème n'est pas résolu, mais le fait d'y répondre fait "remonter" le message en début de page, et alors les pros peuvent le voir plus facilement...

@ bientôt

LouReeD

Non le problème n'est pas résolu, mais le fait d'y répondre fait "remonter" le message en début de page, et alors les pros peuvent le voir plus facilement...

@ bientôt

LouReeD

Merci!

la meilleure option sera de le faire en VBA malheureusement je n'y connais pas grande chose. La majeur partie est déjàa fait par Mferrand, il est toujours dessus. Pour lui laisser souffler un peu, je pensais que d'autre expert pourrait s'y mettre pour le partie comptabilisation des heures c'est d'ailleurs pour cela que j'ai utilisé des formules excel pour le faire... Malheureusement je sors avec un bug dont je ne sais d'où ça pourrait provenir... Si je crée une colonne avant la colonne AD ca marche mais ça bloque la macro en même temps... Du coup le problème reste toujours..... J'espère que d'autres experts vont nous donner un coup de main...

Merci et bonne nuit!

Houla ! Si le Maréchal travail pour vous, je n'ai plus rien à dire !

Vous êtes entre des mains d'expert de "chez Expert" !

Bonsoir à vous Maréchal et n'oubliez pas d'aller dormir !

@ bientôt

LouReeD

Merci LouReed,

J'espère que d'autres experts vont donner un coup de main pour que le maréchal se repose un peu...

Il a vraiment taper fort , je ne peux que dire Merci à lui!

Bonne journée à tous!

Bjr,

avoir sorti un truc comme cela c'est déjà balaise !!

mais pourquoi avoir mis 29 dans la formule (il s'agit de la largeur du décaler)

=SI(C$4<>"";SI(SOMMEPROD((C$4>=Leave[depart])*(C$4<Leave[retour])*(HEURES!$A8=Leave[Agents]));0;
SOMMEPROD(
--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;EQUIV(HEURES!C$4;DECALER('QUART PAR AGENT'!$C$3;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;1;29);0);8;5)="X")*
--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;8;1)=HEURES!$A8)*
((TOV!$A$4:$E$4)-(TOV!$A$2:$E$2))))
;"")

Bjr,

avoir sorti un truc comme cela c'est déjà balaise !!

mais pourquoi avoir mis 29 dans la formule (il s'agit de la largeur du décaler)

=SI(C$4<>"";SI(SOMMEPROD((C$4>=Leave[depart])*(C$4<Leave[retour])*(HEURES!$A8=Leave[Agents]));0;
SOMMEPROD(
--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;EQUIV(HEURES!C$4;DECALER('QUART PAR AGENT'!$C$3;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;1;29);0);8;5)="X")*
--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;8;1)=HEURES!$A8)*
((TOV!$A$4:$E$4)-(TOV!$A$2:$E$2))))
;"")

Oui en effet ! Mais ça devrait faire 28 au lieu de 29.

J'essaie ça et vous revient... A mon avis, la solution VBA doit gérer, car il y'a trop de copier coller en fonction des agents....

Si je peux copier coller le même tableau pour agent pour chaque agent avec les mêmes formules, je pense ca devra mieux marcher..

Merci!

Salut Steelson,

Merci pour le code,malheureusement ça marche toujours pas... Les dernières cellules des dimanche ne sont pas comptabilisés... Le 4 aussi n'est plus comptabilisés je ne sais pas pourquoi ...

Bjr,

avoir sorti un truc comme cela c'est déjà balaise !!

mais pourquoi avoir mis 29 dans la formule (il s'agit de la largeur du décaler)

=SI(C$4<>"";SI(SOMMEPROD((C$4>=Leave[depart])*(C$4<Leave[retour])*(HEURES!$A8=Leave[Agents]));0;
SOMMEPROD(
--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;EQUIV(HEURES!C$4;DECALER('QUART PAR AGENT'!$C$3;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;1;29);0);8;5)="X")*
--(DECALER('QUART PAR AGENT'!$B$6;(NO.SEMAINE(C$4;2)-NO.SEMAINE($AH$2;2))*13;0;8;1)=HEURES!$A8)*
((TOV!$A$4:$E$4)-(TOV!$A$2:$E$2))))
;"")

je vais m'y repencher ce soir

mais eu égard au nombre de lignes de la formule, une solution VBA est en effet plus adaptée

je vais m'y repencher ce soir

mais eu égard au nombre de lignes de la formule, une solution VBA est en effet plus adaptée

Oui en effet, mais je ne connais pas grande chose en VBA. Je me remets à vous pour une solution VBA.

Merci!

J'ai corrigé les 2 lignes en jaune

dis moi si ok

je crois que SOMMEPROD est déjà matricielle... Donc il n'est pas utile de valider les formules "en matricielle"...

Ceci n'apporte rien à votre problème, ou plutôt votre solution... , mais cela a le mérite de faire un "Up" de votre message...

Bravo LooReeD, je crois que tu as donné la réponse ... et la correction.

Il suffit de valider avec Entrée et non Ctrl+Maj+Entrée !!!

On va attendre le verdict du client.

Steelson bonjour,

en fait je ne sais pas si cela apport quoi que ce soit, c'était juste une pensée comme ça...

@ bientôt

LouReeD

avec un "OU" !

je crois que SOMMEPROD est déjà matricielle... Donc il n'est pas utile de valider les formules "en matricielle"...

Ceci n'apporte rien à votre problème, ou plutôt votre solution... , mais cela a le mérite de faire un "Up" de votre message...

Bravo LooReeD, je crois que tu as donné la réponse ... et la correction.

Il suffit de valider avec Entrée et non Ctrl+Maj+Entrée !!!

On va attendre le verdict du client.

Cette option ne marche pas.

Je vais voir le fichier une fois à la maison. Présentement je suis en cours de route.

Merci d'avance !

J'ai corrigé les 2 lignes en jaune

dis moi si ok

Ca ne marche toujours pas. normalement sous le 04 on doit avoir 11 heures travaillées et 11 heures travaillés pour le 28.

les heures de nuit du 04 et 28 doivent être de 3.

Merci!

ok j'avais espéré !! je reprends le sujet ...

néanmoins je ne trouvais pas la même chose entre matriciel et normal ! ? !

je n'arrive pas à m'en dépêtrer, mais l'onglet TOV semble annuler les valeurs en 4ème position dans certains cas

cet onglet est un peu curieux !!

encore faut-il programmer une macro pour le démasquer :

Sub tov()
Sheets("TOV").Visible = True
End Sub

et passage en [hh]

capture d ecran 1

cela ne collera donc jamais puisqu'à la colonne 4 on a 20-20=0 et ces lignes sont prises en compte dans le SOMMEPROD

justement ce sont des colonnes comme 4 ou 28=4x7 qui sont erronnées

Le fait d'avoir 5 colonnes explique aussi l’illogisme des valeurs comme 29 et 5 que l'on trouve dans les DECALER

Là je ne veux plus y toucher car je risque de mettre en péril les autres macros !

Personnellement, je trouve la présentation de la rotation des équipes "jolie" mais je ferais plutôt une base de données plus simple sur laquelle j'appuyerai ce calcul complexe mais aussi la présentation de la rotation des équipes. Et là tout deviendrai plus simple et plus maintenable !

Rechercher des sujets similaires à "erreur sommeprod"