Planning avec Cycle

bonjour,

Je viens quérir un peu d'aide sur ce forum.

Alors voila, je réorganise un peu mon service suite à des changements de personnel. Nous sommes donc deux mi-temps plus un accueil à 80%! j'ai fait un planning avec mes faibles connaissances sous excel qui dans la forme me convient parfaitement! Ce planning intègre un cycle de travail sur 15 jours !

C'est la que se pose mon problème, comme vous pourrez le voir sur la feuille excel, j'ai intégré le cycle a partir du 1er Juin et ce jusqu’à la fin de l'année le tout rentré à la main (souris...).

J'aurais voulu savoir si il était possible que mon cycle de 15 jours se duplique tout seul avec pour départ le premier jour ouvrable de janvier. En effet dans l'onglet données, je change l'année et automatiquement cela me met a jour le planning (dates, jours fériés et weekend).

Il faudrait que le cycle se duplique en tenant compte des jours fériés ! c'est a dire que si le mardi est férié, il doit continuer le cycle en zappant le mardi !

Voila en espérant être suffisament clair !

Merci pour vos réponses !

139planning-1.xlsm (81.53 Ko)

bonjour,

Essaie en pièce jointe (YAKA changer l'année sur la feuille "Param") pour passer à l'année suivante.

A+

Bonjour, et désolé pour cette réponse tardive...

Je viens de voir et essayer les versions que tu as postées !

Merci beaucoup, un vrai petit outil bien pratique... En plus tu as corrigé tous les petits défauts... Que dire....

MERCI

Bonjour,

Petit souci sur le cycle, je me suis trompé, rien de bien urgent, mais j'aurais aimé savoir si il était possible d'apporter des modifications.

J'ai regarder comment tu (galopin01) avait fait le cycle et du coup je t'ais préparé une document .TXT. histoire d'aider un peu.

Par contre ce changement m'oblige à revoir le cycle sur 4 semaines et n'ont pas sur 2 semaine...

J'ai essayé de comprendre la logique de ce que tu avais fait, mais je n'arrive pas a passer sur 28 jours, il ne modifie pas le cycle alors que sur 14 jours il n'y pas de souci....

si c'est possible et en m'excusant...

Merci

le fichier txt

93cycle.txt (244.00 Octets)

Je ne remets pas le doc excel il est dans le dernier post !

bonsoir,

Ils me paraissent un peu zarbi tes cycles il manque un mardi libre à David et par voie de conséquence il a un X de trop en semaine 4 le matin :

J M J M J O O M O M J J O O J M M J J O O J X J M J O O

C'est intentionnel ?

De toute façon, j'ai besoin d'un point de départ : Il me faut une date de référence pour le début du cycle... sinon ta semaine 1 n'aura qu'une chance sur 4 de tomber juste.

Si tu acceptes que la semaine 1 tombe n'importe quand, il suffit de mettre Véronique sur le même cycle de 28 jours et il n'y aura pas d'erreurs.

En revanche si tu veux le choix de ta semaine 1 il faut que je fasse un calcul et que j'adapte ton string pour mettre la bonne semaine en tête. Hum... Est-ce clair ?

A+

Bonjour,

alors en effet, je me suis trompé, enfin bref désolé pour la perte de temps...

Le cycle est bien sur 1 mois a compter du 1er juin 2015 (sa tombe bien c'est un lundi ...)

Après j'avais mis les matins et Aprem à la suite, en décomposant cela donne ça :

Q : Matin : J O M J M O O J M J M J O O J O M J M O O J M M J J O O

Après-midi : M X J M J O O M J M J J O O M X J M J O O M J J M J O O

D : Matin : J M J M J O O M O M J J O O J M J M J O O M O J M J O O

Après-midi : J J M J M O O J X J M M O O J J M J M O O J X M J M O O

Pour Véronique, elle peut rester sur 15 jours ou plus simple sur une semaine, son cycle sera toujours le même ! elle est a 80% donc elle n'est pas présente les mercredi.

Sinon pour que tu puisse comprendre, ma contrainte est que sur le premier planning, D n'était pas présent les bons mercredi ! Par exemple, sur le mois de juin, le 10 est une date de commission ou je souhaite qu'il soit présent, et le 24 le mercredi matin c'est à mon tour d'aller à une commission. Cela reviens tous les mois : 8/07 c'est David, le 22/07 c'est Quentin, le 5/08 c'est David et le 19/08 c'est Quentin.... ainsi de suite tout l'année et cela ne change pas sauf si la commission tombe un jour férié. Sachant que les commissions ne ce font que sur le mi-temps "MED".

Voilou, j'espère que je réponds à tes interrogations... sans t"en rajouter...

Merci

Bonjour,

Je n'ai pas encore vérifié si ça tombe bien ou non, il y a une chance sur 4 pour que ça tombe bien.

Mais de toute façon pour faire tourner le programme tu es obligé de faire tourner également Véronique sur 4 semaines, même si elle fait toutes les semaines la même chose : Je ne vais pas m'amuser à faire un programme pour Véronique et un autre pour les 2 autres... Il y a juste à doubler son string (par le milieu) et l'affaire est faite. Tu modifies le programme pour 28 jours et ça va passer.

Après pour voir si le cycle tombe bien sur le 1er Juin... je regarde de suite !

A+

Bonjour,

Oui évidemment ont peut faire tourner son string sur 28 jours... même si ça fait moins envie d'un coup....

Sinon oui en effet je comprends bien que tu ne vas pas effectuer un prog spécifique pour véronique sachant que sa semaine sera toujours la même que l'on soit sur 28 jours ou sur 7 !

En tout cas merci de te soucier de mon problème... c'est très sympa !

@ bientôt

Bonjour,

Voici donc les 3 strings version XXL :

V: "A A P A A O O A A P A A O O A A P A A O O A A P A A O O A A P A A O O A A P A A O O A A P A A O O A A P A A O O"
Q: "J O M J M O O J M M J J O O J O M J M O O J M J M J O O M X J M J O O M J J M J O O M X J M J O O M J M J J O O"
D: "J M J M J O O M O J M J O O J M J M J O O M O M J J O O J J M J M O O J X M J M O O J J M J M O O J X J M M O O"

Pourquoi mon modèle est-il différent ? Car pour des raisons de "commodité" je me réfère au 15 juin comme début de cycle (c'est pas tout à fait vrai mais ça se comprend facilement de cette manière...)

la macro modifiée :

Sub NewYear()
Dim i%, iC%, k%, res%
Application.ScreenUpdating = False
For i = 1 To 12
   With Worksheets(i)
      .Name = StrConv(MonthName(i), vbProperCase)
      .Range("B5:AF15").ClearContents
      .Range("B5:AF15").Interior.ColorIndex = 2
      .Cells(5, 2) = DateSerial([an], i, 1)
         For k = 1 To 31
            If Month(DateSerial([an], i, k)) = i Then .Cells(6, k + 1) = DateSerial([an], i, k)
         Next
      iC = .Cells(6, 2).End(xlToRight).Column
      For k = 2 To iC
      maDate = CDate(.Cells(6, k))
         If Not (EstJourFerie(maDate)) Then
            res = (.Cells(6, k) - 2) Mod 28
            .Cells(8, k) = cycle("V", res)
            .Cells(9, k) = cycle("V", res + 28)
            .Cells(11, k) = cycle("Q", res)
            .Cells(12, k) = cycle("Q", res + 28)
            .Cells(14, k) = cycle("D", res)
            .Cells(15, k) = cycle("D", res + 28)
         End If
      Next
   End With
Next
End Sub

A+

Re bonjour,

Merci Merci Merci, ça fonctionne nickel, même si j'avoue ne pas avoir saisi la subtilité du 15 juin ! Enfin j'ai bien vu que tu avais décalé le cycle, mais après....

Enfin mon problème est résolu, je te remercie encore pour le temps passé !

@ Bientôt

Pour positionner les cycles, je me réfère au 1er de chaque mois

je divise la date par 28 et je m'intéresse à ce qui reste :

res = (.Cells(6, k) - 2) Mod 28

Le reste est forcément un nombre compris entre 0 et 27...

(il y a une petite correction (-2) pour que le cycle commence un lundi...)

Si on applique cette formule au 1er juin, on trouve res = 14.

Ce qui signifie que le cycle se terminera 13 jours plus tard (le dimanche 14) et le lundi 15 il restera 0 (zéro) : nouveau cycle.

On appelle alors la fonction cycle avec le paramètre 0 qui correspond au premier jour du cycle... (+ un décalage de 28 les après-midi)

Hum... c'est clair ?

A+

Rechercher des sujets similaires à "planning cycle"