fichier planning en automatique

pierrot38110

XLDnaute Nouveau
Bonjour amis "excelator",

J'ai un besoin pour mon club de sport, je souhaiterai colorer fusionner et mettre un nom dans les cases de mon onglet planning en fonction des plages horaires saisies dans les onglets "disponibilités gymnases" et "horaires d'entrainement". Je vous joins mon fichier et pour exemple j'ai fait manuellement les disponibilités gymnases (orange en dehors des plages) et le coloriage en jaune pour les U13F quand elles sont à Faverges et en bleu quand elles sont à Dolomieu. Merci pour votre aide :)

Sportivement
Pierrot
 

Pièces jointes

  • planning entrainements test.xlsx
    22.4 KB · Affichages: 71

CISCO

XLDnaute Barbatruc
Bonjour

Petite amélioration en pièce jointe.

@ plus

P.S : Si cela te convient, je t'expliquerai les modifications que j'ai faites pour que cela fonctionne correctement (suppression des fusions de cellules, format personnalisé...).
 

Pièces jointes

  • planning entrainements test.xlsx
    45.9 KB · Affichages: 73
Dernière édition:

fanfan38

XLDnaute Barbatruc
Bonjour
J'ai pas regardé la proposition de Cisco ... en pièce jointe la mienne...
C'est comics j'habite Morestel... et ma belle fille est de Dolomieu...

Il y a des macros (voir sécurité excel)
A+ François
 

Pièces jointes

  • planning entrainements test.xlsm
    39.3 KB · Affichages: 72
Dernière édition:

pierrot38110

XLDnaute Nouveau
Bonjour

Petite amélioration en pièce jointe.

@ plus

P.S : Si cela te convient, je t'expliquerai les modifications que j'ai faites pour que cela fonctionne correctement (suppression des fusions de cellules, format personnalisé...).


Salut,

Merci pour les modifs, c'est parfait, je veux bien les explications et savoir comment mettre une couleur pour chaque équipe.

@ +

Pierre
 

CISCO

XLDnaute Barbatruc
Bonsoir

Comme tu t'en doutes, j'ai un peu oublié ce que j'ai fait sur ce fichier. En fouillant un peu, il me semble que :

Sur la feuille Planning
  • J'ai défusionné les cellules de la première ligne.
  • Dans A4, A6..., il y a des formules écrivant la même chose qu'en A3, A5... (c-à-d lundi, mardi...) avec une police blanche.
  • J'ai défini le nom débutdo (Pour l'horaire du début de la dispo du gymnase Dolomieu du jour en cours) avec INDIRECT("'disponibilité gymnases'!C"&(LIGNE()-4)/2+2). Par ex, en ligne 4 cela donne INDIRECT("'disponibilité gymnases'!C"&(4-4)/2+2) = disponibilité gymnases'!C2, soit le début de la dispo du gymnase Dolomieu le lundi (en ligne 4, sur la feuille Planning, on est bien le lundi). Cette formule permet de connaitre le début de la dispo du gymnase Dolomieu le lundi en ligne 4, le mardi en ligne 6, le mercredi en ligne 8 et ainsi de suite. Comme cette formule INDIRECT fonctionne avec le n° de ligne, il ne faut pas introduire de ligne supplémentaire au dessus du planning ni dans le haut de la feuille disponibilité gymnases (ou alors, en modifiant le - 4 en conséquence). En utilisant cette astuce, je n'ai eu besoin de définir qu'un seul nom pour le début de la disponibilité du gymnase Dolomieu, quelque soit le jour considéré. Autrement, il aurait fallu un nom pour le lundi, un autre pour le mardi et ainsi de suite.
  • De même débutfav donne le début de la dispo du gymnase Faverges le lundi (ligne 3), le mardi (ligne 5), le mercredi (ligne 7)... en fonction de la ligne.
  • Même chose pour findo et finfa, pour la fin des disponibilités de ces deux gymnases chaque jour en fonction de la ligne en cours.
  • Dans planning!D3, la condition 'Horaires entrainements'!$C$2:$C$33=$A3 renvoie VRAI lorsque 'Horaires entrainements'!$C$2:$C$33 contient lundi, FAUX dans les autres cas. La condition $B3='Horaires entrainements'!$D$2:$D$33 renvoie VRAI lorsque 'Horaires entrainements'!$D$2:$D$33 contient Faverges (=$B3). Le produit VRAI*VRAI donne 1, tous les autres produits (ex VRAI*FAUX) donnent 0. Donc, le produit ('Horaires entrainements'!$C$2:$C$33=$A3)*($B3='Horaires entrainements'!$D$2:$D$33) renvoie une série de 0, et, si les deux conditions sont vérifiées sur la même ligne, un 1.
  • Donc SOMMEPROD(...) renvoie 0 (dans ce cas, on met "" dans la cellule) ou un nombre entier positif correspondant à la ligne x répondant à toutes les conditions (Dans ce cas, on met le contenu de 'Horaires entrainements'!$A$1:$A$33 sur cette ligne x, U13F par exemple, avec INDEX(.....;SOMMEPROD(()*.....))).

Les mises en forme conditionnelles mettent les cellules en couleur
  • brune (avec EST.IMPAIR(LIGNE())*((C$1<débutfav)+(finfav<=C$1)))), donc pour les lignes impaires lorsque l'heure dans la ligne 1 n'est pas comprise dans la période de disponibilité du gymnase Faverges, période définie par débutfav et finfav
  • ou orange (lignes paires) lorsque l'heure sur la ligne 1 n'est pas.... du gymnase Dolomieu
  • ou jaune lorsqu'il y a quelque chose dans la cellule sur une ligne Faverges
  • ou bleu lorsqu'il y a quelque chose dans la cellule sur une ligne Dolomieu
@ plus

P.S : Avec la relation dans planning!D3, je ne sais pas mettre qu'une seule fois U13F dans la plage de disponibilité du gymnase. Avec une mise en forme conditionnelle, cela doit être faisable de ne laisser qu'un U13F sur cette plage. Si cela te dit...
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
205

Statistiques des forums

Discussions
312 104
Messages
2 085 326
Membres
102 862
dernier inscrit
Emma35400