XL 2010 Colorer automatiquement des cellules / plage horaire

Wayat

XLDnaute Junior
Bonjour à tous,
J'ai créé un tableau avec une liste de salariés et leurs plages horaire de travail du lundi au vendredi.
Dans le tableau que j'ai mis en pièce jointe (onglet planning salariés), j'ai coloré manuellement les cellules des plages horaires de présence.
Je voulais savoir si en complétant l'onglet "salariés", en notant la plage horaire de travail, il était possible avec excel de colorer automatiquement la plage horaire du planning général.
Je vous remercie pour votre aide et vos conseils.
Thierry
 

Pièces jointes

  • Microstructures - TEST.xlsm
    25.9 KB · Affichages: 32

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Taafs,
Un essai en PJ que par formules, avec en B2 :
VB:
=SI(ET(B$1>=INDEX(SALARIES!$B$2:$K$1000;EQUIV($A2;SALARIES!$A$2:$A$1000;0);EQUIV($A$1;SALARIES!$B$1:$K$1));C$1<INDEX(SALARIES!$B$2:$K$1000;EQUIV($A2;SALARIES!$A$2:$A$1000;0);1+EQUIV($A$1;SALARIES!$B$1:$K$1)));1;"")
et deux MFC basées sur :
Code:
=ET(B2=1;EST.IMPAIR(LIGNE()))
et
=ET(B2=1;EST.PAIR(LIGNE()))
Pour traiter différemment les lignes paires et impaires.
Les formules en B10 se simplifient puisqu'il suffit de faire la somme du tableau.
 

Pièces jointes

  • Microstructures - TEST.xlsm
    36.6 KB · Affichages: 15

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voyez les Mise En Forme Conditionnelles dans le fichier joint, j'ai rajouté 2 colonnes (qui pourraient être masquées) qui rapatrie les horaires de la feuille 'Salariés'. Les fonctions qu'elles contiennent pourraient servir de fonction pour les mises en formes conditionnelles, mais cela alourdirait considérablement les temps de calculs avec le temps.

D'ailleurs et ce n'est que mon avis personnel, c'est dans ces 2 colonnes rajoutées que je saisirais les horaires, ou dans un tableau structuré avec en colonnes "Dates Salarié Heure_Début Heure_Fin." Ce qui allègerait votre future gestion et vos statistiques des horaires (voir l'exemple dans la feuille Salariés un tableau structuré nommé T_Horaires)

Cordialement
 

Pièces jointes

  • Microstructures - TEST.xlsm
    33.9 KB · Affichages: 9

Wayat

XLDnaute Junior
Merci pour vos réponses, vous avez été rapide !
J'ai juste 2 petits problèmes :
- la réponse de @MP59 est top, le seul souci c'est que je ne peux pas compter le nombre de cellule de couleur, toutes cellules sont à 0,
- J'aime bien également la solution de @sylvanu, le petit problème est que dans mon tableau d'horaire, si j'ai une fin à 16h00 pour le salarié 1, il faut qu'Excel colore jusqu'a la cellule 15h45, et là, c'est coloré que jusqu'à 15h30,
J'ai encore besoin de votre aide pour me débloquer :confused:
Merci à tous, vous êtes au top ! :D
 

Wayat

XLDnaute Junior
Un autre essai en PJ .
J'ai crié victoire trop vite :( j'ai un problème avec la journée de jeudi qui m'affiche la valeur #N/A sur toutes mes cellules.
J'ai vérifier mes formules... j'ai supprimé, coller, recoller, recopier... je ne vois pas où est l'erreur 😭
Pourquoi uniquement sur la journée de Jeudi... mystère et boules de gomme...
Je vous mets mon fichier de travail PJ. Help !
 

Pièces jointes

  • Microstructures - TEST.xlsm
    258.3 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Taafs,
Le mieux pour trouver est de décomposer chaque partie de formules. Ce qui coince c'est :
VB:
EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7)
La syntaxe est EQUIV(Valeur;Plage;Type) et là le type n'est pas mis. C'est :
VB:
EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0)

Donc pour le Jeudi, cellule C74 :
Code:
=SI(ET(C$73>=INDEX('AMPLITUDE ENFANTS'!$C$8:$L$27;EQUIV($A74;'AMPLITUDE ENFANTS'!$B$8:$B$27;0);EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0));C$73<INDEX('AMPLITUDE ENFANTS'!$C$8:$L$27;EQUIV($A74;'AMPLITUDE ENFANTS'!$B$8:$B$27;0);1+EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0)));1;"")

Ce qui m'étonnes c'est que les autres formules marchent. :)
Une fois rectifié ça marche.
Voir PJ, j'ai rectifié tous les jours mais uniquement sur MAM CAMIETA.
 

Pièces jointes

  • Microstructures - TEST (5).xlsm
    284.8 KB · Affichages: 16

Wayat

XLDnaute Junior
Bonjour Taafs,
Le mieux pour trouver est de décomposer chaque partie de formules. Ce qui coince c'est :
VB:
EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7)
La syntaxe est EQUIV(Valeur;Plage;Type) et là le type n'est pas mis. C'est :
VB:
EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0)

Donc pour le Jeudi, cellule C74 :
Code:
=SI(ET(C$73>=INDEX('AMPLITUDE ENFANTS'!$C$8:$L$27;EQUIV($A74;'AMPLITUDE ENFANTS'!$B$8:$B$27;0);EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0));C$73<INDEX('AMPLITUDE ENFANTS'!$C$8:$L$27;EQUIV($A74;'AMPLITUDE ENFANTS'!$B$8:$B$27;0);1+EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0)));1;"")

Ce qui m'étonnes c'est que les autres formules marchent. :)
Une fois rectifié ça marche.
Voir PJ, j'ai rectifié tous les jours mais uniquement sur MAM CAMIETA.
Merci pour votre réponse rapide. Je vérifie ça lundi pour les autres onglets. Super ! Je vous envoie un message lundi si j'ai eu le temps de tout rectifier. Merci encore. Bon week-end :D
 

Wayat

XLDnaute Junior
Bonjour Taafs,
Le mieux pour trouver est de décomposer chaque partie de formules. Ce qui coince c'est :
VB:
EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7)
La syntaxe est EQUIV(Valeur;Plage;Type) et là le type n'est pas mis. C'est :
VB:
EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0)

Donc pour le Jeudi, cellule C74 :
Code:
=SI(ET(C$73>=INDEX('AMPLITUDE ENFANTS'!$C$8:$L$27;EQUIV($A74;'AMPLITUDE ENFANTS'!$B$8:$B$27;0);EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0));C$73<INDEX('AMPLITUDE ENFANTS'!$C$8:$L$27;EQUIV($A74;'AMPLITUDE ENFANTS'!$B$8:$B$27;0);1+EQUIV($A$73;'AMPLITUDE ENFANTS'!$C$7:$L$7;0)));1;"")

Ce qui m'étonnes c'est que les autres formules marchent. :)
Une fois rectifié ça marche.
Voir PJ, j'ai rectifié tous les jours mais uniquement sur MAM CAMIETA.
Re bonjour,
Je viens de reprendre mon classeur excel et j'ai mis les formules à jour... et ça marche :D
Merci beaucoup pour votre aide, j'ai un super planning !
A bientôt.
 

Wayat

XLDnaute Junior
@sylvanu, j'ai encore besoin de vous 😁
Dans le super planning que j'ai, j'ai voulu l'adapter pour d'autres membres du personnel.
Seulement, ces salariés ont des coupures dans leur journée... et je ne sais pas comment adapter ma formule de calcul.
Je mets le planning en pièce jointe pour que cela soit plus clair.
Merci pour votre aide.
 

Pièces jointes

  • TEST-Présence du personnel.xlsm
    46.2 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Taafs,
Ce fut laborieux. :)
Le plus simple a été d'ajouter les deux slots time avec les bons décalages, et de modifier les MFC.
En formule c'est :
VB:
=SIERREUR(SI(ET(B$1>=INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0));B$1<INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);1+EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0)));1;0);0)+
SIERREUR(SI(ET(B$1>=INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);2+EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0));B$1<INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);3+EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0)));1;0);0)
A tester. ;)
 

Pièces jointes

  • TEST-Présence du personnel.xlsm
    55.5 KB · Affichages: 20

Wayat

XLDnaute Junior
Bonjour Taafs,
Ce fut laborieux. :)
Le plus simple a été d'ajouter les deux slots time avec les bons décalages, et de modifier les MFC.
En formule c'est :
VB:
=SIERREUR(SI(ET(B$1>=INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0));B$1<INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);1+EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0)));1;0);0)+
SIERREUR(SI(ET(B$1>=INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);2+EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0));B$1<INDEX('PRESENCE DU PERSONNEL'!$C$7:$V$11;EQUIV($A2;'PRESENCE DU PERSONNEL'!$B$7:$B$11;0);3+EQUIV($A$1;'PRESENCE DU PERSONNEL'!$C$6:$V$6;0)));1;0);0)
A tester. ;)
Bonjour Sylvanu,

Désolé pour le retard de réponse.
J'ai testé ce matin ton tableau, c'est top !
Merci beaucoup.
J'ai pu ajouter le roulement du personnel pour le planning hebdomadaire.
Encore merci ! c'est génial ça fonctionne parfaitement.
Belle journée. A bientôt.
 

Wayat

XLDnaute Junior
Re-bonjour,

Je reviens avec mon tableau pour lequel j'ai encore besoin d'aide 😁
Sur une feuille de calcul j'ai le planning avec les plages de présence.
Sur 12 feuilles j'ai chaque mois de l'année et dans chaque feuille le planning de chaque semaine.
Est-il possible, sur le planning des plages de présence de rentrer en haut le numéro de la semaine et de ce fait le planning horaire du mois correspondant viendrait automatiquement générer les plages de présence ?
ça serait super top ! Peut-être que @sylvanu aura la solution miracle 🤩
Merci pour votre aide.
Bon week-end à tous.
 

Pièces jointes

  • Test BOVERO Hebdomadaire 2021.xlsm
    265.9 KB · Affichages: 22

Discussions similaires

Statistiques des forums

Discussions
315 109
Messages
2 116 300
Membres
112 716
dernier inscrit
jean1234