Formule Excel/VBA complexe: copie automatique intellig

Bonjour.

Je viens vers vous pour vous demander de l'aide pour du code en VBA pour excel, pour une fonction complexe pour mon planning assisté. Mon fichier, outre les pages paramètres, contient principalement deux types de plannings :

  • Un planning général par client important nécessitant un tas de nos agents.
  • Un planning individuel par agent et par feuille

==> chaque planning général est toujours dédié à un client précis IMPORTANT. C'est à dire qu'on va planifier plusieurs de nos agents pour ce même client durant le mois en cours. Les clients peu importants c'est à dire ceux qui ne nous commandent pas beaucoup d'agents n'ont pas besoin qu'on leur dédie un planning général puisqu'il est aisé de planifier nos gars. Mais tous nos agents peuvent très bien bosser sur d'autres sites et donc pour d'autres clients. Le but de ce planning général est de faciliter la plannification de nos gars, en en ayant un maximum sous les yeux.

==> le planning général d'un client comporte deux colonnes par agent correspondant à deux vacations possibles. Un agent peut en faire une seule pour ce client (8h-15h par exemple) ou peut en faire 2 (6h-12h puis 14h-18h) par jour pour ce même client. Il peut aussi travailler quelques jours dans la semaine et être de repos ensuite...

Vos compétences et votre aide me seraient utiles pour faire ce qui suit :

Quand on rentre des vacations dans le planning général d'un client (le nom du client figure en haut de ce planning), alors il faudrait que les heures de début et de fin de service qu'on y a entré, soient automatiquement copiées sur les plannings individuels pour gagner du temps. Quand au nom du site, et bien on indique le nom du client de la feuille d'où provient la copie des heures.

Exemple : on inscrit dans le planning général cora le nom de l'agent "Dupont". On le planifie le 5 du mois de 20h à 23h. Alors le code VB cherche un onglet portant le nom "dupont" et s'il le trouve, copie dans "vacation 1" le nom du client de ce planning général "cora" (première ligne) puis inscrit dans heure de début et heure de fin de la première vacation, le 20h et 23h entrés dans le planning général. Si l'agent A fait 9h-11h et 14h-18h dans la même journée sur le planning général du client "cora", copier dans son planning individuel 9h-11h dans vacation 1 et copier 14h-18h dans vacation 2.

subtilité du code "intelligent" souhaité : Si l'agent A dispose dans son planning individuel d'une vacation chez le client "cora" de 8h à 12h et qu'on plannifie sur le planning général du client "youpi" une vacation de 14h à 18h, alors copier 14h à 18h dans la seconde colonne vacation de son planning individuel puisque la première est occupée par le client cora. Ainsi, il faudrait que la formule "décale" l'écriture si jamais c'est pris.

Seconde subtilité du code "intelligent" souhaité : Si l'agent A est planifié sur deux plannings généraux le même jour, alors le code devrait recopier les vacations en fonction des heures. Par exemple imaginons que le 25 du mois, l'agent A soit planifié sur le planing Général du client "youpi" de 15h à 18h puis qu'on le planifie le même jour sur le planing général du client "hourra" de 8h à 14h. Il faudrait que le code range dans l'ordre croissant de commencement des vacations ; qu'il mette dans son planning individuel dans vacation 1 le client hourra de 8h à 14h puis dans vacation 2 le client "youpi" de 15h à 18h.

Exemple de fonctionnement souhaité : Imaginons qu'on a entré sur le planning inviduel de l'agent A la vacation 1 intitulée "soirée" de 20h à 23h. Puis dans le planning général du client "youpi" on entre pour le même jour, pour cet agent, la vacation 14h45 17h. Le code VB voyant que la vacation 1 est déjà occupée dans le planning individuel, copierait 14h45 à 17h en vacation 2 et indiquerait comme nom de cette vacation "youpi" (ligne 1 des plannings généraux qui comportent le nom du client). Mais aprés, sur un autre planning général du client "hourraaa", on planifie le même jour, ce même agent de 8h à 12h. Comme vacation 1 et 2 sont déjà occupées sur le planning général, alors copier 8h à 12h dans la vacation 3 et appeler celle-ci "hourraaa". Mais on aura alors ceci :

8h-12h hourraaa en vacation 1, 14h45-17h youpi en vacation 2, 20h-23h soirée en vacation 3

Je m'interrogeais concernant ce "rangement" dans l'ordre... Peut-être qu'il faudrait le séparer du code VB de la copie automatique des plannings généraux vers les plannings individuels afin de rendre plus facile l'écriture du code, non ?

Je pensais notamment à ce détail ; Ne faudrait-il pas un bouton supplémentaire sur le sommaire intitulé "ranger les vacations". Ainsi, une fois qu'on aurait rempli nos plannings individuels et généraux, qu'excel avec VBA et le code que vous auriez créé, aurait tout copié où il faut, on repartirait sur le sommaire et on cliquerait sur ranger les vacations et elles seraient mises dans l'ordre horraire... Enfin c'est une idée. Aprés si ça peut être intégré directement dans le code VB de la copie automatique "intelligente" pourquoi pas.

D'avance merci à celui qui y arrivera !

Rechercher des sujets similaires à "formule vba complexe copie automatique intellig"