Projet VBA - Création Plannings avec conditions

Bonjour,

Pour l'organisation d'un festival, je dois créer mon planning.

J'aimerais faire une macro qui remplisse automatiquement ce planning mais je ne sais pas vraiment faire !

(j'ai des notions débutantes sur VBA).

Le but de ce post :

  • partagez avec vous les conditions et propriétés du planning
  • m'orienter pour que je comprenne comment développer ce planning

Le planning en quelques mots :

  • 90 bénévoles
  • 13 zones
+ 1 zone pour 1 bénévole à la fois

+ 7 zones pour 4 bénévoles à la fois

+ 5 zones pour 2 bénévoles à la fois

  • Les zones n'ont pas les mêmes horaires pour début et fin d'exploitation
  • le festival n'est pas ouvert aux mêmes heures selon les jours

Les conditions en quelques mots :

  • 1 bénévole (enceinte) ne peut faire que certaines zones, pas les autres
  • Créneau de 2h par bénévole, 1h de pause minimum entre chaque créneau pour un bénévole
  • 18h max par bénévole sur les 3j
  • Si un bénévole travaille entre 9h et 13h, il ne peut pas travailler entre 3h et 5h la nuit même
  • Si un bénévole travaille entre 1h et 5h du matin, il ne peut pas travailler entre 9h et 11h le matin suivant
  • Possibilité de mettre une plage de 2h par bénévole où il ne travaillera pas (pour leur réserver leur concert préféré)
+ Cette plage est donc possiblement différente pour chaque bénévole

- extraire les horaires + zone par bénévole une fois le planning effectué

Je vous joins ce à quoi ressemblait le planning l'an dernier (il y avait une zone en moins pour les 4 bénévoles à la fois).

je suis vraiment prêt à bosser dessus, j'ai juste besoin que vous m'aidiez pour savoir dans quelle direction aller car là je ne sais pas.

Merci pour votre aide !!!

Bonjour,

Tu peux déjà faire une feuille "Param"

avec la liste des zones et les horaires des différentes zones.

En t'inspirant du fichier joint ci ça te convient...

(inutile de mettre les noms des volontaires dans un premier temps...)

A+

Bonjour,

Cette version est beaucoup plus aboutie.

Il ne manque que quelques détails en fonction des différentes zones.

Les Noms et prénoms des volontaires devront être modifié -avant usage effectif- dans la feuille param : ils s'ajusteront d'eux même dans les autres feuilles.

Les zones doivent êtres listées dans la feuilles param dans l'ordre ou elle doivent apparaître dans le planning.

Quand les différentes zones seront listées je les ajusterait dans les différentes palettes et elle pourront être transférées avec leurs couleurs dans la feuille des volontaires ce qui rendra leur emploi du temps plus lisible.

A mon avis plus simple : YAPA !

Une fois paramétré la feuille "Param"

YAPUKA sélectionner les volontaires un par un dans la Palette du Planning / Sites puis sélectionner leur créneau à l'endroit voulu dans le planning.

Nota : la sélection est limité à 2 cellules horizontales => pas plus de 2 heures

Pour Effacer une cellule Cliquer Clear dans la palette (Ce qui la ferme...)

Pour basculer le planning d'un agent (Celui qui est actif dans la palette Cliquer "Transfert")

Pour basculer tout le planning / Agent : Cliquer" Tous"

Ce Planning / Agent sera beaucoup plus lisible quand les différentes zones et leur couleurs seront fixées...

L'ensemble est ajusté pour tenir dans un écran horizontal.

Nota 2 : Sur la base de la durée de l'an dernier (35 h) Avec 90 volontaires, pour ces 3 jours, le taux moyen d'occupation des volontaires doit tourner à un peu plus de 15 h. Ce qui est assez énorme !

Une colonne comptabilise leurs heures sur la feuille /Agent...

Je n'ai pas jugé utile de faire une feuille par agent, ça alourdirait considérablement l'ensemble sans ajouter à la lisibilité...

Si tu as d'autres questions...

Important : Pour remplir la feuilles des paramètres ne pas procéder par Copier/Coller (Ce qui effacerait les paramètres Couleurs et Police) indispensable à la bonne gestions des Volontaires et des sites. Vous devez impérativement procéder par Copier / Collage spécial Valeur, ou par saisie manuelle.

A+

Hello Galopin,

merci beaucoup pour ton aide

J'avais rempli en retrant du boulot le 1er fichier (ci-joint).

Je me remets sur ton 2ème fichier pour regarder ça !

Merci !


Voilà remis avec le nouveau fichier

Alors de ce que je comprends, la saisie des volontaires se fait ensuite manuellement.

Ce que j'aimerais faire, c'est appuyer sur un bouton et que la macro propose un planning automatiquement, au hasard, en respectant les conditions.

je sais que ce n'est pas facile, mais à quel point est-ce automatisable ?

Aussi, les horaires ne sont pas définitifs, on aura la prod qui nous donnera ça bientôt. Si je change les horaires des zones, est ce que ça peut modifier dans le planning ?

Dernière chose, le nombre de volontaire est d'environ 90 mais pourra etre un peu plus ou un peu moins, est-ce possible d'en rajouter un peu ou pas ?

Oui les bénévoles ne chôment pas pendant ces 3j mais c'est dans la bonne ambiance , avec des supers soirées avant et surtout après avec les artistes, bref ils ne s'en plaignent pas

Bonjour,

En fait avec les nouveaux horaires on retombe à 14 virgule quelque chose... ce qui est nettement plus cool !

Ce que j'aimerais faire, c'est appuyer sur un bouton et que la macro propose un planning automatiquement !

ça c'est juste pas possible et surtout pas souhaitable : tu passerais plus de temps ensuite à faire les modifications que tu ne vas en passer à remplir le planning.

Comme il est monté présentement, je compte qu'il ne faudra pas plus d'une heure pour remplir tout ton planning. Et probablement bien moins... Le tout avec une certaine cohérence. Moi je pense que je ne mettrai pas plus d'une d'1/2 heure à pré remplir les 90 premiers....

Tu en passerais bien plus en recherche et en discussions s'il te faut faire des retouches avec un planning rempli au hasard !

De toutes façons je ne me lancerais pas dans une telle opération...

Si l'on change les horaires des zones, bien sur que ça va changer le planning : même qu'il n'est pas souhaitable de commencer à le remplir tant que les horaires ne sont pas définitifs... (A moins d'être un peu maso !)

Un peu plus ou un peu moins de volontaires...

ça commence à devenir sportif !

Un peu plus, c'est pas gênant... S'il y en a ou deux qui ont un empêchement de dernière minute, il faudra bien les remplacer !

Moi comme je vois la chose...

Je mettrais ma liste de volontaires de la manière suivante :

En premier la femme enceinte qu'on sait déjà ou mettre...

Les 30 ou 40 suivants tu mets les volontaires les moins disponibles ou ceux qui s'accomoderaient bien de faire leur 8 heures par jours consécutivement en début de journées (3 x 2h = 2 x 1h de pause = 8)

Si tu blindes toute cette première moitié à 18 h effectifs sur 3 jours, moins de 70 volontaires suffisent... Donc ça te laisse une marge confortable pour peaufiner avec les 45 autres et le cas échéant ramener tout le monde à 16h ou 14h...

Bon je continue mon truc... C'est presque fini mais ça ne t'empêche pas de zieuter ailleurs si quelqu'un à quelque chose de mieux à te proposer... Je ne me sentirasi pas vexé !

Euh... C'est quand ton truc ?

A+

Merci pour ton retour !

Oui avec les horaires diminués sur certaines zones c'est bien mieux

Je comprends pour l'automatisation. Mon fantasme était de mettre toutes les conditions et que le remplissage auto les prenne en compte pour ne pas faire de modifications ensuite... Mais oui, ça paraît impossible !

Pour les horaires, le pb est que le site est nouveau et donc la prod donnera tous les horaires définitifs quand ils voudront mais j'espère d'ici mi-juin, sachant que le festival est fin juin.

Déjà, si la saisie manuelle est bien simplifiée comme c'est le cas maintenant, c'est super ! Car on passait énormément d'heure à remplir tout à la main avant (ils faisaient ça sur Google Drive donc grosse misère car 100% tout à la main).

As-tu besoin de quelque chose de ma part ?

Si je peux participer, c'est avec plaisir

Bonsoir,

J'ai passé un petit moment dessus pour arriver à la version 6... Et puis finalement je suis revenu en arrière avec la version 4.

Moins élaborée, mais comme c'est souvent le cas plus rustique, plus stable et plus rapide. Au final après l'avoir testée quelques heures... Je resterai sur cette version !

De plus, YAPA beaucoup de complications tu devrais pouvoir comprendre sans problème.

Bon je te balance tout en vrac, mais je vais essayer de faire dans l'ordre. Ne te précipite donc pas pour essayer. Digère d'abord ce que je vais te brifer.

L'application est conçue pour tourner sans les menus d'Excel, sans la barre des formules et sans les en-têtes de lignes et de colonnes.

Ainsi on a une vue panoramique sur l'essentiel.

En période d'essai et de réglage il peut être commode de les afficher : Un clic droit sur la barre des menus pour décocher réduire le ruban. Pour la barre de Formule et les en-têtes de lignes et de colonnes, C'est dans le ruban Affichage... Mais je ne vois pas quand tu pourrais en avoir besoin... Par contre la feuille Planning Général étant protégée (sans mot de passe) à l'occasion tu peux en avoir besoin pour quelques bricolages... Elle se reprotège automatiquement...

Le maniement des boutons étant assez intuitif, je ne t'explique pas... Le bouton transfert, comme son nom l'indique bascule le planning sur la feuille "P Agents". Ce transfert est assez long (plusieurs minutes...) ça laisse le temps de boire un café...

On n'y peut rien : C'est 4500 cellules à ausculter une par une... D'un autre coté on n'est pas obligé de s'en servir toutes les 2 minutes ! (A moins de beaucoup aimer le café...)

La feuille "P Agents" permet de faire les éditions en principe il n'y à pas à y toucher.

Les éditions se font en mode "Aperçu" avant impression ce qui me parait économique et... bien pratique !

Si tu lances par erreur l'impression générale tu peux l'interrompre avec Ctrl +Pause puis Echap et Fin...

Dans la feuille "Planning Général" un bouton rouge caché vers la droite permet la remise à vide du planning. Bien sûr c'est à utiliser avec discernement !

La feuille "Param" est masquée : Une fois rentré le nom des Volontaires et les horaires il n'y en a plus besoin donc on peut la re-masquer. Pour la Masquer / Démasquer on CliqueDroit sur les onglets...

Remarque : Le prénom des Volontaires n'est (pour le moment) jamais utilisé. Cependant on pourrait peut-être le faire (dans l'impression de leur feuille perso...)

Ce qu'il faut savoir : Les feuilles "Param" et "Planning" comportent des macros évènementielles

Worksheet_Change (Param)

Worksheet_SelectionChange (Planning)

Worksheet_BeforeRightClick (Planning)

Quand on veut faire des trucs inavouables et tout à fait imprévisibles ces macros font de la résistance.

On peux les inhiber en modifiant leur nom : Je me contente de mettre un "X" devant et comme ça on peut avoir la paix un moment.

XWorksheet_Change (Param)

XWorksheet_SelectionChange (Planning)

XWorksheet_BeforeRightClick (Planning)

Ne pas oublier d'enlever les "X pour" permettre un fonctionnement normal ensuite.

Ces généralités étant bien comprises, on peut s'amuser à remplir le planning en sélectionnant une victime dans la palette et en sélectionnant deux cellules (mais pas plus) pour affecter un agent sur une position.

Légère contrainte pour effacer une erreur il faut cliquer sur CLEAR dans le UserForm (donc le fermer) et faire un ClicDroit sur la zone à effacer. Mais ce ClicDroit permet d'effacer une cellule unique ou plusieurs cellules... Après de Nombreux essais, c'est un peu contraignant mais on s'y fait...

Remarque : Il est plus commode de généraliser la saisie en escalier que de coller quelqu'un sur la même ligne avec des trous d'une heure...

Selon mon intuition il doit être plus commode de commencer par la femme enceinte puis par le camping... Enfin tu verras. De toutes façon il y a aussi certainement beaucoup de critères locaux qui font que le feeling devra surement aussi jouer. Malgré tout, tu remarqueras qu'il est assez facile de "regrouper" les vacations des différents intervenants pour leur éviter des temps de pause trop longs...

Dans la feuille "Param j'ai modifié un peu le tableau des horaires : ce qui calcule automatiquement la durée moyenne d'occupation en fonction du Nbre de volontaires. J'ai donc rempli le planning sur la base de 14 qui est très proche de la moyenne et permettra de satisfaire tout le monde...

Il s'ensuit que le premier truc à faire est de fixer les horaires afin d'avoir une idée précise du chiffre moyen.

Et la deuxième chose est de connaître la liste définitive des participants...

Ensuite seulement tu pourras remplir le planning... Après avoir grisé les zones non utiles en fonction du nouvel horaire. Attention de bien utiliser le même format que moi pour les zones grises (Procéder par Copier / Coller d'une cellule) sinon le système ne marcherait pas... Pour info... vers la ligne 104 dans le planning j'ai fait une copie de ces zones grises. (Pour m'éviter des prises de têtes au moment de la réinitialisation...)

Cette zone peut être affichée ou masquée en tant que de besoin par le bouton Afficher / Masquer (en haut)

C'est prioritairement dans cette zone que tu devras ajuster ta plage utile. (Il y a un petit utilitaire -redimensionnable et déplaçable- qui te permet de visualiser en temps réel tes horaires)

Une fois terminé de fignoler cette zone, ne pas oublier de la masquer : YAPUKA lancer le bouton rouge et tu auras un beau planning tout neuf !

Pourquoi faut-il masquer cette zone? Pour éviter de l'imprimer pour rien si par hasard tu décidais d'imprimer le planning...

Pour imprimer le planning on peut le faire jour par jour en utilisant les boutons "Vendredi", "Samedi"...

Bon je crois que je t'ai dit l'essentiel... Si tu as des questions ou des suggestions d'amélioration...

A+

103romlab-harpic-vg4.xlsm (145.72 Ko)

[EDIT : ]

Correction d'un bug mineur et ajout du prénom dans les feuilles "P Agents"

Remplacer les 2 macros suivantes dans le module Impress

Sub PrintIndiv() 'Imprime tous les plannings des volontaires
Dim i%, ii%
ii = ShParam.Range("Quidam").Rows.Count
   For i = 4 To ii
      Range("AZ1") = Cells(i, 1) & " " & ShParam.Cells(i-2, 2)
      Range("AZ2") = Cells(i, 50) & " h"
      Range("B" & i & ":N" & i).Copy Range("AZ6:BL6")
      Range("O" & i & ":AH" & i).Copy Range("AZ10:BS10")
      Range("AI" & i & ":AW" & i).Copy Range("AZ14:BN14")
      Range("AZ6:BL6").Borders.LineStyle = xlContinuous
      Range("AZ6:BL6").Borders(xlInsideVertical).LineStyle = xlNone
      Range("AZ10:BS10").Borders.LineStyle = xlContinuous
      Range("AZ10:BS10").Borders(xlInsideVertical).LineStyle = xlNone
      Range("AZ14:BN14").Borders.LineStyle = xlContinuous
      Range("AZ14:BN14").Borders(xlInsideVertical).LineStyle = xlNone
      ActiveSheet.PrintOut Preview:=True
   Next
End Sub

Sub PrintSel() 'Imprime la ligne active
Dim i%
i = ActiveCell.Row
   Range("AZ1") = Cells(i, 1) & " " & ShParam.Cells(i-2, 2)
   Range("AZ2") = Cells(i, 50) & " h"
   Range("B" & i & ":N" & i).Copy Range("AZ6:BL6")
   Range("O" & i & ":AH" & i).Copy Range("AZ10:BS10")
   Range("AI" & i & ":AW" & i).Copy Range("AZ14:BN14")
   Range("AZ6:BL6").Borders.LineStyle = xlContinuous
   Range("AZ6:BL6").Borders(xlInsideVertical).LineStyle = xlNone
   Range("AZ10:BS10").Borders.LineStyle = xlContinuous
   Range("AZ10:BS10").Borders(xlInsideVertical).LineStyle = xlNone
   Range("AZ14:BN14").Borders.LineStyle = xlContinuous
   Range("AZ14:BN14").Borders(xlInsideVertical).LineStyle = xlNone
   ActiveSheet.PrintOut Preview:=True
End Sub

A+

Hello,

j'ai bien remplacé les macros, et j'ai fais quelques tests.

1ère impression : c'est beau, c'est visible et très simple d'utilisation !

Merci beaucoup

Le côté impression pour les bénévoles est au top. Je pense que je rajouterai bien le mail du bénévole quelque part (paramètre ?) afin de donner la possibilité de sortir l'impression en pdf et la publiposter.

Comme ça, une fois le planning fait, on l'édite et chaque bénévole l'a dans ses mails (en plus du papier qu'on donnera).

Une dernière chose, au moment de remplir ce planning :

je commence à mettre des noms, y a t il possibilité d'ensuite protéger la colonne horaire, la précédente et la suivante de pouvoir mettre ce nom ?

Je m'explique : je mets Georges de 18h à 20h à Paris. Avec la palette, je reste avec Georges, si je sélectionne d'autres emplacements aux mêmes horaires --> ça me bloque. Idem avec l'heure d'avant et l'heure d'après.

Comme ça, je suis sûr de ne pas le mettre sur plusieurs endroits. Même si le récapitulatif par agent permet de voir cela.

C'est un détail donc juste au cas ou...

En tout cas, merci beaucoup, ça va faire gagner beaucoup de temps

Bonjour,

Il n'y a aucun inconvénient à insérer une colonne "Email" à coté de la colonne prénoms.

Ne pas utiliser la colonne grise, mais insérer entre la colonne prénom et la colonne grise.

Pour la deuxième question, j'y crois pas trop (Je crains que ce soit vraiment très lourd...) mais je vais y réfléchir.

Quoi qu'il en soit c'est une vrai question parce ce que si on mets 2 emplacements différents à la même heure, ça ne peut pas se voir sur la feuille individuelle. La deuxième écrase la première et basta. Mais au final une des position n'est pas couverte.

A mon avis le risque est limité si la personne qui rempli le planning le fait à tête reposée. Si tu le fais en même temps que tu réponds au téléphone et que discutes avec 3 personnes : ça crains...

La seule manière de s'en apercevoir au final est la discordance entre le nombre d'heures affichée au moment de l'impression et le nombre d'emplacement couverts sur le planning sur la feuille individuelle. C'est bien la raison pour laquelle j'ai totalisé ces affectations sur la ligne récap. (mais je ne pensais pas du tout à cette possibilité d'erreur...)

Je te tiens au jus.

A+

Hello,

parfait, jvais pouvoir faire mon publipostage trankilou ensuite

Yes, j'ai testé cette erreur et c'est pour ça que je t'ai posé la question.

Le truc, c'est qu'il y a 3 chefs d'équipe, 3 chefs qui bossent à côté.

Il suffit que l'un prenne le mail d'un bénévole qui annonce qu'il ne pourra pas être là, qu'il fasse des modifs et BAM y a une connerie que personne ne verra forcément...

Sauf en faisant les vérifications que tu proposes !

En tout cas, si c'est faisable, ça serait au top !

Merci,

Aargh... Tu as bien fait de te manifester j'étais en train de te passer aux oubliettes...

Je pense que le seul truc que je puisse faire c'est un blocage au niveau de l'impression si le total n'est pas cohérent avec le nombre de cellules colorées. Sinon je ne vois pas comment faire dans le temps imparti.

IL faudrait tout remettre à plat et partir sur une autre base.

Mais je ne crois pas que j'aurai le temps de développer sur une autre base. Le problème est que je suis parti sur un algo très lent : le comptage de cellules colorées et réécrire ça avec un moteur plus performant me semble très improbable dans l'immédiat.

Le temps de transfert vers les feuilles agents est déjà suffisamment long pour ne pas que je rajoute une structure de contrôle supplémentaire qui va encore allonger cette attente. Il faut donc partir sur un système radicalement différent (travailler sur des tableaux virtuels peut-être même en 3D), expérimenter, et ça... ça ne s'improvise pas à la dernière minute !

Je me mets donc à plancher sur une structure de contrôle avant l'impression, ce qui ne devrait pas être trop long... la solution demain. Je pense pouvoir faire ça d'une manière assez souple pour que tu aies juste à modifier la macro d'impression. Donc dans l'immédiat tu peux continuer de travailler tranquillement.

A+

bonsoir,

Finalement ça été rapide : J'ai rajouté une petite structure de contrôle au niveau de l'impression.

Les anomalies ne sont pas imprimées et sont listées Colonne AY ( à partir de la ligne 20 )

Pour supprimer l'anomalie, il faut (au minimum) corriger la colonne AX sur les lignes indiquées.

Avec la réserve que corriger seulement le total ne supprime pas réellement l'anomalie elle permet seulement une impression isolée(pour rechercher la vrai source du problème).

Pour rechercher la vraie source du problème, il faut faire une recherche sur le "NOM" du volontaire dans le planning général pour mettre en évidence un doublon éventuel sur 2 positions de travail différentes à la même heure...

Tu me suis bien, sur ce coup là ?

Les macros à remplacer + ajouter la Function :

Sub PrintIndiv() 'Imprime tous les plannings des volontaires
Dim i%, ii%, MonDico
Set MonDico = CreateObject("Scripting.Dictionary")
ii = ShParam.Range("Quidam").Rows.Count
   For i = 4 To ii
      If IsOk(i) Then
         Range("AZ1") = Cells(i, 1) & " " & ShParam.Cells(i - 2, 2)
         Range("AZ2") = Cells(i, 50) & " h"
         Range("B" & i & ":N" & i).Copy Range("AZ6:BL6")
         Range("O" & i & ":AH" & i).Copy Range("AZ10:BS10")
         Range("AI" & i & ":AW" & i).Copy Range("AZ14:BN14")
         Range("AZ6:BL6").Borders.LineStyle = xlContinuous
         Range("AZ6:BL6").Borders(xlInsideVertical).LineStyle = xlNone
         Range("AZ10:BS10").Borders.LineStyle = xlContinuous
         Range("AZ10:BS10").Borders(xlInsideVertical).LineStyle = xlNone
         Range("AZ14:BN14").Borders.LineStyle = xlContinuous
         Range("AZ14:BN14").Borders(xlInsideVertical).LineStyle = xlNone
         ActiveSheet.PrintOut Preview:=True
      Else
         MonDico(Cells(i, 1).Value & " " & ShParam.Cells(i - 2, 2).Value) = ""
      End If
   Next
         [AY20:AY100].Clear
         MsgBox MonDico.Count & " Anomalie(s) détectée(s)"
         [AY20].Resize(MonDico.Count, 1) = Application.Transpose(MonDico.keys)
End Sub

Sub PrintSel() 'Imprime la ligne active
Dim i%
i = ActiveCell.Row
If IsOk(i) Then
   Range("AZ1") = Cells(i, 1) & " " & ShParam.Cells(i - 2, 2)
   Range("AZ2") = Cells(i, 50) & " h"
   Range("B" & i & ":N" & i).Copy Range("AZ6:BL6")
   Range("O" & i & ":AH" & i).Copy Range("AZ10:BS10")
   Range("AI" & i & ":AW" & i).Copy Range("AZ14:BN14")
   Range("AZ6:BL6").Borders.LineStyle = xlContinuous
   Range("AZ6:BL6").Borders(xlInsideVertical).LineStyle = xlNone
   Range("AZ10:BS10").Borders.LineStyle = xlContinuous
   Range("AZ10:BS10").Borders(xlInsideVertical).LineStyle = xlNone
   Range("AZ14:BN14").Borders.LineStyle = xlContinuous
   Range("AZ14:BN14").Borders(xlInsideVertical).LineStyle = xlNone
   ActiveSheet.PrintOut Preview:=True
Else
   MsgBox "Anomalie " & Cells(i, 1) & " " & ShParam.Cells(i - 2, 2)
End If
End Sub

Private Function IsOk(iR%) As Boolean
Dim iC%, cpt
For iC = 2 To 49
cpt = IIf(Cells(iR, iC).Interior.Color <> 16777215, cpt + 1, cpt)
Next
IsOk = cpt = Cells(iR, 50)
End Function

A+

Parfait, c'est génial comme ça !

Ca me va parfaitement

Pour la suite, je réponds à ton MP !

Hello Galopin,

on a bien testé le planning et j'aurai quelques requêtes qui j'espère ne sont pas trop compliquées :

  • j'ai bien l'erreur quand on met 2h en même temps à 2 endroits différents. Mais est-il possible d'en mettre une si le bénévole a plus de 2h de boulot consécutives ?
  • Au niveau du planning : serait-il possible de rajouter pour chaque lieu (Paris, Bagatelle, etc...) un bouton ajouter/retirer une ligne ? car c'est possible qu'on est un bénévole en plus ou moins à gérer...
  • Idem, pour les horaires : ajouter/retirer une colonne horaire ?
  • -> ou est ce que pour ces 2 points, il suffit de modifier le planning en ligne 104 et d'appuyer sur RAZ qui mettra tout à jour ?

Merci beaucoup

Bonjour,

Hum je vais te faire une réponse de normand...

Il faut bien comprendre que tous les contrôles d'erreurs se soldent par une perte de temps considérable. Donc il y avantage à essayer de faire ça sérieusement dès le départ. En principe sur ce sujet les connexions de nos neurones travaillent bien mieux que celle de VBA.

J'avais calculé que ça faisait pas moins de 200 000 cellules à contrôler 100 fois dans des boucles For...Next et avec moulte If... Then ce qui n'est pas rien. C'est la raison pour laquelle j'avais préférez le contrôle par formule précédemment. Mais il n'existe aucune formule pour tester la couleur de trois cellules consécutives.

A mon sens vous y gagnerez certainement à faire un contrôle visuel attentif sur la feuille agent...

Le RAZ mettra à jour le nom et le nombre des agents ainsi que les horaires modifiés vers la zone 100 (étant entendu que vous ne pouvez modifier les horaires que dans les plages existantes...)

c'est à dire que vous ne pouvez pas commencer avant 16 h le vendredi,

ni entre 5 et 9 dans la nuit de vendredi à samedi

ni entre 5 et 9 dans la nuit de samedi à dimanche

ni après minuit le dimanche

Ces modifications des bornes quotidiennes obligeraient à une reprogrammation...

Ces restrictions étant faites vous pouvez modifier les zones grisées en tant que de besoin. (dans la zone masquée + RAZ)

Mais surement pas supprimer ou ajouter une colonne !

A vérifier hein... je te fais ça de mémoire. Tu ne risques rien à essayer sur une copie tu rajoutes 20 personnes et une vingtaine de case grises... tu verras bien si ça passe c'est bon... Si ça casse tu n'enregistres surtout pas !

Mais je n'essaie même pas : j'ai confiance !

A+

OK très clair !

Pour l'erreur des 3 erreurs, j'ai dis exactement la même réponse que toi à mes collègues donc on est d'accord --> Contrôle visuel

Et on s'arrangera pour faire les changements sur la réplique de planning en bas pour ensuite faire RAZ.

Parfait !

Merci,

Hello Galopin,

j'ai vraiment besoin de ton aide

Le planning a été changé :

  • j'ai plus de bénévole sur plusieurs postes --> des lignes en plus pour l'onglet planning (5 en tout)
  • j'ai 3heures en plus dans le week-end --> des colonnes en plus pour l'onglet planning (3 en tout)
  • les noms ont changé
  • un bénévole n'est plus limité à un shift de 2h mais de 3h maximum...

Du coup j'ai refait le calendrier général et les zones grisées.

Evidemment ça bug...

Ce nouveau calendrier est définitif, si tu trouvais le temps d'adapter ta macro ça serait génialissime, sinon je me débrouillerai comme je peux ! Je comprends que tu n'aies pas forcément le temps

Ci-joint, ton fichier de base + mon fichier avec le calendrier updaté au niveau de l'onglet param (au niveau des horaires et nombre de bénévoles), de l'onglet "PLANNING" (colonnes et lignes en plus pour le calendrier de base + le masqué + nom des postes changés) et onglet "P Agents" (colonnes en plus pour le planning général et pour les plannings individuels).

Si tu arrivais à mettre la macro à jour en conséquence, ça serait super, surtout qu'après ça ne bougera plus !

Merci pour ton retour

Bonjour,

Et c'est à faire pour quand ? Pour hier ?

Je prends quel fichier ?

A+

Ouais en gros c'était pour hier mais pour quand tu peux, on s'adapte

le fichier 1RomLab_HARPIC_VG4.xlsm est celui avec le nouveau planning définitif !

Merci

Rechercher des sujets similaires à "projet vba creation plannings conditions"