Calcul en fonction présence hebdomadaire VBA

Résolu/Fermé
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - Modifié par Co_nexion le 5/09/2012 à 09:08
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 1 oct. 2012 à 10:42
Bonjour à toutes et à tous,

Petite problématique sur les semaines.

Ci-dessous, à votre disposition, le fichier pour permettre de mieux cerner l'objectif de ce que je souhaite réaliser.

J'ai une personne qui est présente du 08/08/2012 au 09/10/2012. Il faudrait que dans l'onglet 2,
Chaque semaine ou la personne est présente entièrement il soit noté 1 (sa quotité) et pour la première et dernière semaine que cela soit calculé au prorata (au prorata d'une semaine sans dimanche et jours fériés).

Et de la même manière pour chaque mois. 1 pour le mois complet et au prorata pour le 1er et le dernier mois.

SI quelqu'un a une idée pour savoir par ou prendre ce problème parce que je vous avoue que je ne sais pas par quel bord le prendre. Il s'agit d'Excel 2010.

Merci par avance pour tout ceux qui se pencheront dessus.

https://www.cjoint.com/?BIfjfS3uhvj


10 réponses

eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
1 oct. 2012 à 10:34
Bonjour,

à tester : https://www.cjoint.com/?BJbkHZjah1e
eric
1
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
1 oct. 2012 à 10:42
Du coup maintenant je comprends à quoi sert le ">1"

Merci ca fonctionne parfaitement,

A bientôt
0
michel_m Messages postés 16577 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 22 août 2022 3 278
5 sept. 2012 à 11:00
Bonjour,

sans VBA

Essaies
=ENT((F2-JOURSEM(F2)-E2+8)/7)-(JOURSEM(F2;2)<5)*1

calcule le nombre de lundi entre les dates (source: Alain Vallon) et retire une semaine si la dernière semaine de présence se termine avant le vendredi
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
5 sept. 2012 à 11:29
Bonjour Michel,

Le problème avec cette formule c'est qu'il m'est indiqué le nombre de semaines entre ces deux dates. Et cela ne permet pas d'alimenter le tableau de synthèse.
0
michel_m Messages postés 16577 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 22 août 2022 3 278
5 sept. 2012 à 12:13
Excuses moi j'avais lu le message en diagonale

Quand tu écris:
pour la première et dernière semaine que cela soit calculé au prorata (au prorata d'une semaine sans dimanche et jours fériés).
que veux tu dire?
je comprend comme ça: si je commence un mercredi, la 1) semaine ne compte; si je termine un jeudi, la dernière ne compte pas
?

suivant ta réponse, je te demanderais peut-^tre aussi d'expliquer l'influence des jours fériés sur ton calcul; pour l'instant je ne vois que ceux qui tombent un lundi ou un samedi mais...?

D'autre part dans ta synthèse, est ce par personne ou pour l'ensemble des agents?

je repasserai seulement en fin d'aprèm
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
5 sept. 2012 à 14:10
Merci Michel, voici les précisions :

pour la première et dernière semaine que cela soit calculé au prorata (au prorata d'une semaine sans dimanche et jours fériés).
que veux tu dire?
je comprend comme ça: si je commence un mercredi, la 1) semaine ne compte; si je termine un jeudi, la dernière ne compte pas
?

Il ne s'agit pas d'exclure la semaine mais de compter au prorata de la quotité soit pour l'exemple : le 08/08/2012 est un mercredi donc 4 jours sur 6 (mercredi, jeudi, vendredi et samedi) de présence soit 4/6*1 pour la semaine 32. Et pour le 09/10/2012, c'est un mardi soit 2 jours sur 6 (lundi et mardi) soit 2/6*1 pour la semaine 41.

Concernant les jours fériés, je devance ta question (si je ne me trompes pas) :
Si le 07/08/2012 était un jour férié alors le prorata serait de 4/5*1 pour la semaine 32.

Pour finir la synthèse sur l'onglet 2 du fichier rassemble tous les agents. Soit sur la semaine 42 = 3 (quotité ligne 3 et 4) ou encore semaine 34 = 2 (quotité ligne 2 et 4).

J'espère avoir été le plus clair possible, merci encore pour le coup de main et à tout à l'heure
0
michel_m Messages postés 16577 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 22 août 2022 3 278
5 sept. 2012 à 17:54
Désolé, mais je ne pourrai regarder sérieusement ton pb que Vendredi...

en attendant, je passe le bébé à un forumeur célèbre ;o)

a vendredi peut-^tre;
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
5 sept. 2012 à 19:49
Bonjour à tous,

Pourrais-tu préciser sur les fériés...
Si le 07/08/2012 était un jour férié alors le prorata serait de 4/5*1 pour la semaine 32
Il n'est pas encore arrivé mais on compte quand même la semaine à 5 jours au lieu de 6 ?
Et quelle est l'influences des fériés sur une semaine complète ? Elle vaut toujours 1 ?

Je ne te cache pas que tenir compte des fériés complique singulièrement...

D'autre part ton tableau 2 est mal préparé :
- pas d'emplacement pour un identifiant. C'est un oubli ou c'est un tableau global comptabilisant tous les ident ?
- tes semaines sur plusieurs lignes vont t'empêcher de copier facilement les formules. Il faudra les reprendre à chaque ligne. Une présentation en colonne pour les semaine serait beaucoup mieux.

eric

0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
5 sept. 2012 à 22:38
PS: et précise aussi par des exemples l'impact des fériés sur le calcul mensuel.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
6 sept. 2012 à 10:29
Bonjour eric, bonjour michel et bonjour le forum,

Si le 07/08/2012 était un jour férié alors le prorata serait de 4/5*1 pour la semaine 32
Il n'est pas encore arrivé mais on compte quand même la semaine à 5 jours au lieu de 6 ?


Quand tu dis il n'est pas arrivé tu parles du jour férié ? Pour éviter toute confusion, j'ai rajouté deux exemple dans le tableau.

Pour la ligne 5, sa première semaine (semaine 17) sera la moitié de sa quotité (1,5) car (3/6 *3). Et sa dernière semaine incluant le 14/07 (semaine 28) la quotité est égal à 5/5*3 soit 3.

Cela me permet de répondre à ta question suivante

Et quelle est l'influences des fériés sur une semaine complète ? Elle vaut toujours 1 ?
Effectivement c'est bien cela, c'est pour cela que l'impact des jours fériés n'a de sens que sur la première et la dernière semaine.

- pas d'emplacement pour un identifiant. C'est un oubli ou c'est un tableau global comptabilisant tous les ident ?
C'est un tableau global comptabilisant tous les ident.

Une présentation en colonne pour les semaine serait beaucoup mieux.
J'ai réalisé ce tableau de cette manière afin qu'il soit imprimable facilement par la personne qui l'utilisera (qu'il tienne sur une page pour faciliter la lecture) si tu as une idée pour permettre cela en améliorant la visibilité, ça m'interesse ;)

PS: et précise aussi par des exemples l'impact des fériés sur le calcul mensuel.

Il s'agit de la même chose que le calcul par semaine. Pour l'exemple pris précédemment, ligne 5, en avril sa quotité est de 4/25*3. En mai, elle est de 23/23*3 (mois complet), idem en juin (mois complet) et en juilllet 11/25*3.

Pour faciliter la compréhension, j'ai rempli manuellement le tableau afin que cela se comprenne visuellement.

https://www.cjoint.com/?BIgkC3bGymM

Merci beaucoup pour le temps accordé
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
6 sept. 2012 à 10:31
J'ai également réalisé une manière pour parvenir à calculer le prorata aux semaines de début et de fin (c'est surement pas idéal mais peut au moins ca a le mérite de fonctionner)

J'attends votre retour, à tout à l'heure et merci !
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
Modifié par eriiic le 6/09/2012 à 10:39
Bonjour,

Si le 07/08/2012 était un jour férié alors le prorata serait de 4/5*1 pour la semaine 32
Il n'est pas encore arrivé mais on compte quand même la semaine à 5 jours au lieu de 6 ?
Quand tu dis il n'est pas arrivé tu parles du jour férié ?

Non, je parlais de l'agent, arrivé le 08/08

En résumé pour les mois incomplets : on fait au prorata des jours ouvrés ?
Et même question pour le mois que pour la semaine : si l'agent arrive après le 14/07 on compte toujours le mois à 25 jours ?

eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
6 sept. 2012 à 10:53
Non, je parlais de l'agent, arrivé le 08/08
Pardon j'avais pas compris comme cela... Etant donné qu'il commence sur cette semaine (la semaine 32) même les jours qu'il n'a pas travaillé affecte sa quotité.

Pour les mois c'est exactement pareil.

Et même question pour le mois que pour la semaine : si l'agent arrive après le 14/07 on compte toujours le mois à 25 jours ?

Egalement pour ce cas

N'hésites pas si je ne suis pas claire
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
6 sept. 2012 à 12:39
Ok, je vois ça dans l'après-midi ou ce soir.
Ce sera en vba, vu que tu veux le global la formule serait un peu longue.
eric
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
Modifié par eriiic le 7/09/2012 à 00:40
J'ai un pb sur ton dernier exemple.
Semaine 18 tu trouves 5, moi : 3

Lig 4 : semaine intermédiaire : +1
Lig 5 : semaine intermédiaire : +1
Lig 6 : semaine de début : je compte la quotité (=1 on a de la chance...) au prorata (arrivé le lundi donc semaine complète) ce qui fait encore +1
Dans ce cas (aée le lundi) est-ce une semaine de début ou une semaine intermédiaire où la quotité n'est pas à prendre en compte ? Ca ne résoudra pas l'écart mais il faut que je sache...

Peux-tu expliquer ton 5 stp ?

Et j'ai un écart de 2 jusqu'à la semaine 27. La 28 je trouve 0.5 en moins. Ensuite ok jusqu'à la semaine 40.
Puis à nouveau des écarts jusqu'à la fin.

eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
17 sept. 2012 à 14:53
Bonjour eric,

Pardon de mettre si longtemps pour le retour...

Tout d'abord un grand merci d'avoir repris ce fichier et d'y avoir apporté ces corrections cela m'a permis de comprendre certaines choses.

J'ai contrôlé les résultats et ceux-ci sont corrects.

Malheureusement, il y a toujours quelque chose qui m'échappe. J'ai fait une reproduction identique de mon fichier. J'ai juste changé le nom du bouton (ce qui n'affecte en rien le code).

Mais dès que je clique sur le bouton la procédure bug et m'affiche ce message d'erreur :

Erreur d'exécution 13 : Incompatibilité de type. Et il me surligne la ligne suivante (en gras)
    For lig = 2 To Cells(Rows.Count, 3).End(xlUp).Row
        jourDeb = Cells(lig, 5)
        jourFin = Cells(lig, 6)
        quotité = Cells(lig, 9)


Sauf que mon tableau est exactement le même que le tien et je ne comprends vraiment pas pourquoi il bug à ce niveau...
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
17 sept. 2012 à 15:19
Bonjour,

à mon avis c'est la donnée en cells(lig,5) qui est incorrecte.
Par exemple une chaine au lieu d'une date excel.

Difficile d'en dire plus sans ton fichier.

eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
18 sept. 2012 à 10:06
Bonjour eric,

J'ai bien regardé et les dates sont belles et bien des dates...

J'ai l'impression d'avoir exactement le même fichier que toi...

Aurais-tu apporté des modifications aux propriétés quelque part ?

En tout cas voici le fichier dans lequel je souhaite utiliser cette fonction, tu verras que c'est le même que précédemment (ou alors une erreur s'est glissé mais je ne la vois pas...)

https://www.cjoint.com/?BIskd3cuytZ

Merci d'avance pour ton aide
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
18 sept. 2012 à 10:51
Bonjour,

Tu exagères, ton fichier plante dès l'ouverture.
cycles_à_jour appelé dans Sub Workbook_Open() n'existe pas.

Aurais-tu apporté des modifications aux propriétés quelque part ?
Non, les propriétés ne se modifient pas. Mais il me semble que tu as apporté des changements toi.

eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
18 sept. 2012 à 10:56
Pardon je rectifie de ce pas...

J'avais simplement supprimer des informations et je ne l'avais pas rouvert ensuite..

Je te l'envoie corrigé au plus vite
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
18 sept. 2012 à 10:58
Encore une fois, excuse moi

Voici le fichier sans bug au début

https://www.cjoint.com/?BIsk5KIrl81
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
18 sept. 2012 à 11:43
Je viens de saisir le problème.

Mais il est vicieux, et je ne comprends pas du tout pourquoi car pour les autres cellules cela ne le fait pas.

Ligne 6 en F date de départ : lorsque tu change la date un bug se produit sur la cellule. Aurais-tu une idée d'où cela peut-il venir ?
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
18 sept. 2012 à 11:44
Re,

Tu n'actives pas la feuille 'SuiviCDD'
Cells (entre autres) fait référence à la feuille active.

eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
18 sept. 2012 à 11:45
Cela ne vient peut être pas de là mais c'est la seule piste que j'ai trouvée
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
18 sept. 2012 à 12:05
on s'est croisé, regarde au-dessus.
eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
18 sept. 2012 à 13:39
J'avais pas vu au début. Merci.

Merci beaucoup pour tout le temps que tu as pu passer avec moi.
Et merci pour cette procédure très intéressante.

Je me permets de te demander avant de valider définitivement ce topic si tu as une idée concernant la date en ligne 6 colonne F. Sinon je rouvres un topic parce que du coup depuis ce matin je cherches d'où cela peut venir.

Quoi qu'il en soit un GRAND merci
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
25 sept. 2012 à 16:02
Bonjour eriiiic,

Serait-il possible d'ajouter une petite option dans ce code.

Je souhaite en fait ajouter un chiffre provenant d'une autre colonne d'une autre feuille.

En fait, il s'agit de la colonne "AH2;AH" (chiffre à ajouter),
en fonction de la semaine en "AJ2;AJ" ,
et au mois figurant en colonne "AI2;AI".
La feuille se nomme Archive_CDD_Fin_De_Contrat

Je ne sais pas si c'est jouable de l'ajouter comme cela dans le code, ou s'il faut recréer une autre procédure ?
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
25 sept. 2012 à 17:38
Bonjour,

tu as oublié le fichier...
eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
26 sept. 2012 à 08:53
Bonjour,

Toutes mes excuses...

Voici le sésame : https://www.cjoint.com/?BIAi1vuphKR
0
eriiic Messages postés 24448 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 26 septembre 2022 7 129
26 sept. 2012 à 10:12
Bonjour,
encore un fichier inutilisable, il n'y a pas la fonction semaineiso() et tu n'actives toujours pas la bonne feuille.
eric
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
26 sept. 2012 à 10:29
.... J'y remédie de ce pas
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
26 sept. 2012 à 10:53
0