Création d'un planning

Bonjour,

Voilà je dois développer un outil sur excel pour réaliser des plannings dans un Centre de loisirs. Le truc bien complexe.

Je voulais me faire un document sur excel pour que ça soit le plus lisible sur l’écran.

Mon classeur se compose de la manière suivante :

  • Feuille 1 : Planning Horaire
  • Feuille 2 : Récapitulatif Hebdomadaire
  • Feuille 3 : Samedi
  • Feuille 4 : Dimanche
  • Feuille 5 : Lundi
  • Feuille 6 : Mardi
  • Feuille 7 : Mercredi
  • Feuille 8 : Jeudi
  • Feuille 9 : vendredi

Du coup, dans mon idée, c’était remplir le planning manuellement dans les feuilles 3 à 9 (journée en plein écran c’est le top quand on est 11 personnes, enfin je trouve).

Ce que je rentre dans ces feuilles doit se répercuter automatiquement dans la feuille 1 qui est donc une synthèse du planning et donc la version que j’aimerais imprimer.

J’aimerais jouer uniquement avec du remplissage (voir mes codes couleurs en légende sur la feuille 1).

Concernant mes feuilles 3 à 9, j’aimerais qu’elles totalisent le nombre d’heures d’une personne en fonction de si une cellule est coloriée ou non (quelques soit la couleur une cellule équivaut à 30 minutes).

La feuille 2 sera simple pour moi car on additionne uniquement les heures de chaque feuille.

Ah et une petite dernière si jamais, à chaque fois je dois rentrer mes dates manuellement. Existe-t'il une solution auto ?

Voilà, ce que ça donne quand on maîtrise pas excel

Merci d’avance pour votre aide ! Et bonne soirée !

30test.xlsx (39.69 Ko)

bonjour,

Et les macros on maîtrise ou pas ?

A par ça c'est un peu foutrac ton truc. Rien de tel pour foutre le b...

Une seule feuille devrai suffire ! Sinon tu va passer ton temps à vérifier que chaque feuille est bien la copie de l'autre...

A+

Bonjour et tout d'abord merci pour la réponse si rapide

Non très peu du coup, plutôt que d'attendre, je suis en plein apprentissage sur les tutos. Donc je suis preneur.

revoir ma première réponse par rapport au nombre de feuille...

Tu as déjà l'onglet développeur ?

Ok donc déjà il faut que je remette tout sur une seule feuille ?

Oui j'ai l'onglet développeur du coup.

Ok donc déjà il faut que je remette tout sur une seule feuille ?

Reste calme !

Pour l'instant je réfléchi à haute voix !

Peut-être que d'autres voient les choses autrement. Il faut laisser voire venir les propositions des uns et des autres...

Moi je travaille uniquement sur ta feuille 1 qui me semble déjà pas mal. Un peu surchargée à mon gout ( les multiples formats (de bordures) sont la plupart du temps inutiles et ne font qu'alourdir considérablement la programmation...

Pour l'instant ma philosophie générale est celle-ci :

Quand tu sélectionnes une ligne à partir de la ligne 3 de 7:00 à 12:00 par exemple.

La ligne se colore et c'est le décompte de chaque ligne colorée en face d'un nom qui va calculer le nombre d'heures...

Après le problème est de distinguer les différentes couleurs : Il convient donc bien de discerner ce qui est utile et indispensable de ce qui l'est moins et peut être fait autrement. Qu'en penses-tu ?

Tu peux tester cela en sélectionnant une ligne ou une cellule dans le fichier ci-joint.

Si la cellule ou la ligne est vide, elle se colore en rouge sinon, si elle est déjà colorée elle se décolore.

Ne fonctionne que si la sélection ne comporte qu'une seule ligne... (Pour l'instant c'est juste un embryon)

La macro est dans le module de la feuille. (Clic droit sur l'onglet + Visualiser le code)

A+

17madvx-vg01.xlsm (28.45 Ko)

Dans cette version un peu plus travaillée, on choisi d'abord une affectation/couleur dans la zone AH2:AO2 (Plage nommée "Palette") et on va peindre avec cette couleur celui qui va tenir cette position.

On voit que la formule calcule le nombre d'heures travaillées.

On voit en bas le total hebdomadaire pour chaque individu.

Nota : Pour le bleu clair, s'agissant du repos hebdomadaire le nombre d'heure n'est pas compté : la journée est comptée pour 1...

Si on s'est trompé pendant la phase de coloration on peut resélectionner les cellules erronées : Cela ajoute ou efface les cellules sélectionnées.

La couleur en cours reste en vigueur jusqu'à ce qu'on en choisisse une autre : Pour cette raison il est préférable de raisonner par poste plutôt que par individu : On colorera tous les Club 1 ou tous les Congés Hebdo avant de passer à Club 2 ou Formation...

A priori ça ne sert à rien, mais si malgré tout on souhaite passer au mode sans couleur on peut cliquer sur la ligne 1...

On ne peux pas écrire sur la feuille : Elle est protégé (sans mot de passe.

Pour pouvoir écrire par dessus (la modifier) il faut renommer la macro :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Moi je fais ça très simplement en rajoutant un X devant Worksheet :

Private Sub XWorksheet_SelectionChange(ByVal Target As Range)

On peut alors déprotéger la feuille et la modifier à loisir.

Ne pas oublier de retirer le X ensuite... La feuille se reprotègera toute seule.

A+

36madvx-vg02.xlsm (44.22 Ko)

Wahou super ça !

Je vais tenté de mettre cela dans mon classeur final et je te redis si je bloque ou pas.

Merci bien c'est perfect ! et en plus ultra rapide Yeahhhh

Bon week end !

Pour les explications n'hésite pas à demander...

Et du coup j'en viens

Prenons dans ton classeur, la cellule AM3 contenant la formule : =SI(NBCOLOR(LIGNE();AM$2)>0;1;0)

On est d'accord que cela est la formule qui permet donc d'appliquer à la ligne 3, la valeur 1 si une des cellules à la couleur de la cellule AM2 ?

Est-ce que cette formule peut s'utiliser comme ça ou bien y a t'il un lien avec un module VBA ?

Je m'explique, quand je mets cette formule dans mon classeur (qui est très semblable au tiens mais forcément pas les même noms), j'obtiens une erreur dans la cellule : #NOM?

Peux-tu m'éclaircir sur ce point ?

Merci d'avance

il y a une fonction NBCOLOR dans Module1 (et une déclaration (Public CClr&) à mettre obligatoirement en tête du module, juste après Option Explicit)

Soit tu fais glisser tout le module dans ton projet ou si tu as déjà un Module1 dans ton classeur tu copies la déclaration et la fonction dans ton Module.

Attention ! Dans mes macros le Codename de la feuille "PLANNING HORAIRE" à été changé

Dans VBAProject cliquer sur Feuil1 et dans la fenêtre des propriétés (1ère ligne) renommer "Feuil1" en "ShP"

Je te donne aussi une macro pour vider le planning (pour commencer la semaine suivante...)

Sub RAZ() 'à mettre dans Module1
ShP.Protect UserInterfaceOnly:=True
Range("C3:AE79").Interior.Color = xlNone
End Sub

A+

vbapshp

Parfait encore merci je viens de réussir à appliquer le module à mon classeur.

Du coup, j'ai même apporter quelques modifs pour la mise en forme au lieu de cliquer sur les cellules de couleurs, j'ai créé directement des boutons.

Autre question concernant les Repos hebdomadaires. J'aimerais faire un modif pour qu'il puisse différencier une journée RH d'une 1/2 journée RH.

En gros, j'ai voulu faire cette formule là mais forcément elle ne passe pas

=SI(NBCOLOR(LIGNE();AM$2)=11;0,5;0);SI(NBCOLOR(LIGNE();AM$2)=14;0,5;0);SI(NBCOLOR(LIGNE();AM$2)=29;1;0)

Je suis parti du principe que 1 matinée en RH = 11 cellules, que 1 après-midi RH = 14 cellules et que une journée entière RH = 29 cellules.

Je pensais pouvoir mettre 3 conditions mais je tombe sur un vilain #VALEUR!

Aie aie aie ! que faire ?

Ahah je suis presque .... moins mauvais

Correction faite, il fallait diviser le nombre de cellules par deux car module 1 applique cela et restructurer ma formule.

Ce qui donne

=SI(NBCOLOR(LIGNE();AM$2)=5,5;0,5;SI(NBCOLOR(LIGNE();AM$2)=7;0,5;SI(NBCOLOR(LIGNE();AM$2)=14,5;1;0)))

Encore un grand Merciiiiii !

Je suis de nouveau copain avec l'apprentissage Excel et VBA

Je reviens plus tard si j'ai de nouvelles questions !

Bonne journée !

Hum... C'est un peu capillo-tracté hein ?

La bonne formule est :

=SI(NBCOLOR(LIGNE();AM$2)=5.5;0,5;SI(NBCOLOR(LIGNE();AM$2)=7;0,5;SI(NBCOLOR(LIGNE();AM$2)=14,5;1;0)))

Bravo... mais cette formule est équivalente :

=SI(NBCOLOR(LIGNE();AM$2)>7;1;SI(NBCOLOR(LIGNE();AM$2)>0;1/2;0))

A+

Oui c'est vrai aussi. Vu comme ça. J'aime bien me tirailler parfois .... Pour pas grand chose.

Une dernière petite (normalement). Je souhaite faire un bouton raccourci pour entrer des RH matin, un pour les RH après midi et un pour les RH Journée.

A savoir donc que 1 RH matin = cellule sélectionné +10 cellules. Comment dois-je formuler la macro pour obtenir 11 cellules de la couleur donnée ?

Merci d'avance

ça dépend un peu comment tu as goupillé tes boutons...

Tu as juste à récupérer i = ActiveCell.row (ligne cliquée)

En gros puisque tu as 3 boutons, le bouton matin c'est toujours la plage :

Range(Cells(i,3),Cells(i,13)).Interior.Color = CClr

pour l'après midi :

Range(Cells(i,16),Cells(i,29)).Interior.Color = CClr

et pour la journée :

Range(Cells(i,3),Cells(i,29)).Interior.Color = CClr

(à une vache près...)

Je m'absente jusqu'à 23h.

A+

Parfait ça marche tout comme je le voulais ! C'est royal.

Juste un seul soucis apparaît...

J'ai voulu donner 2 couleurs supplémentaires à ma légende, qui correpond à une fusion Club1+Club2 et une autre Club3 + Club4.

Pour la première, on part d'un violet dégradé rose et l'autre orange dégradé vert.

Le problème qui se pose, c'est que excel reconnait les deux comme la même couleur du coup il me comptabilise le double d'heures sur ces plages horaires là car il compte un première fois en fusion club1+2 et une seconde fois en fusion club 3+4.

Que faire ?

Merci bien encore pour cette aide précieuse !

Bon Dimanche !

Utiliser des couleurs unies !

Aucune possibilité avec des dégradés ? car à la base ... ça m'aurait bien arrangé. Merci

Le mieux est l'ennemi du bien !

Les dégradés ne sont pas des couleurs...

Rechercher des sujets similaires à "creation planning"