Problème code VBA cumul astreintes mensuelles et annuelles

Bonjour à tous,

Je travail sur un planning pour 3 agents composé de 2 feuilles. La première est le planning en lui-même et la seconde contient les listes de tâches, les mois et années.
Le planning est "automatique", c'est à dire qu'en choisissant le mois et l'année il est modifié adapté aux bons jours, dates et semaines.
Les agents sont en ligne et les dates en colonnes. Chaque cellule est modifiable par jour et par agent pour y attribuer par liste déroulante les tâches correspondantes. Une ligne supplémentaire est présente en bas de chaque semaine pour ajouter manuellement des infos complémentaires si besoin.
Les agents montent par semaine au minimum une astreinte qui est renseignée au dimanche pour éviter de polluer les autres cellules.

L'idée est de comptabiliser le nombre d'astreintes effectuées par mois pour chaque agent et en parallèle de comptabiliser les nombre d'astreintes annuelles montées par agent dans un soucis d'équilibre.
Le planning comporte également un bouton qui permet de remettre à zéro l'ensemble du planning pour pouvoir faire le mois d'après (à l'exception du cumul annuel des astreintes) et d'un second bouton qui permet une remise à zéro du cumul annuel des astreinte pour le changement d'année.

Pour ce faire, j'ai des formules en D1, D2 et D3 du type : =NB.SI(H7;"Astreinte")+NB.SI(H12;"Astreinte")+NB.SI(H17;"Astreinte")+NB.SI(H22;"Astreinte")+NB.SI(H27;"Astreinte")+NB.SI(H32;"Astreinte"), qui me permettent de faire mon cumul mensuel dans les cellules voulues par agent.
En lien avec ces cellules, j'ai un code VBA qui me permet de faire un cumul annuel des astreintes.

Le soucis que je rencontre est que si je renseigne un seul agent le système fonctionne parfaitement mais si j'ai un deuxième ou troisième agent, le cumul annuel incrémente de 1 tous les agents faussant les comptes.
J'ai essayé de multiples variantes de code, de verrouiller les cellules, de protéger la feuille, de dissocier les modules, de scinder les calculs,... rien n'y fait. Même ChatGPT me trouve rien et me dit de me tourner vers des expert d'où ma présence sur le forum ! :)

En gros si j'ai en D1=1(cumul mensuel) j'ai bien F=1 (cumul annuel). Si je change de mois j'ai D1=1 et j'ai bien F1=2. Tout fonctionne normalement comme prévu.
Si je remplis D1 et D2 ou D3 j'ai D1=1, D2=1 et D3=1, je me retrouve avec F1=, F2=2 et F3=1. Et si je change de mois le décalage se reporte évidemment faussant totalement les comptes annuels.

J'espère avoir été assez clair dans mes explications...
Je vous laisse faire vos tests sur mon fichier et espère que vous saurez trouver une solution à mon problème.

Merci d'avance !

15planning-1.xlsm (31.85 Ko)

Bonjour et bienvenu sur le forum

Ci joint ma solution.

Si pas de mois en A1 tu vois le planning annuel

15planning-v1.xlsm (49.91 Ko)

A+ François

Bonjour !

Merci beaucoup, c'est super !
L'approche est légèrement différente mais ça fonctionne très bien. Merci.
Est-ce possible de m'expliquer ce qui n'allait pas dans ma version pour que je comprenne et que j'apprenne de mes erreurs ?

Merci par avance et merci encore pour ta réponse.

Bonjour

Comment veux tu faire une quantité annuelle avec 1 mois...

J'ai donc fait un calendrier annuel

A+ François

Re-bonjour,

C'est pas faux !

Ok, merci.

Rechercher des sujets similaires à "probleme code vba cumul astreintes mensuelles annuelles"