XL 2013 peut-on appliquer une mise en forme conditionnelle à une cellule nommée. Et astuces pour nommer nombreuses cellules une à une, chacune leur nom

4rine

XLDnaute Nouveau
Bonjour,
Mon fichier excel traite des plannings de salariés. un planning est affecté à chaque salarié comme déroulé dans l'onglet "planning de base"
Le planning de GG est ligne 13 et je le reporte dans son onglet personnel "GG"
Du 28/12/2020 au 10/01/2021, GG remplace DK et afin que les horaires de DK se répercute dans l'onglet "GG" je nomme chacune des cellules (en jaune) et tout va bien colonne F, onglet"GG" je vous laisse découvrir la formule

Voici mes questions
existe t'il une méthode pour automatiser l'attribution du nom dans la logique que j'ai appliqué
ou pensez-vous à une autre façon d'obtenir dans le calendrier de GG ses propres horaires et les horaires des personnes qu'elle remplacera quand c'est le cas.
existe t'il une méthode pour que mes cellules nommées se colorent avec la mise en forme conditionnelle ou autre.
avec tous mes remerciements pour votre réponse
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier suivant vous trouverez :
1 - un nom, 'Base_Planning', définit ainsi : ='planning de base'!$D$1:$NJ$18
2 - un autre nom 'Postes', définit ainsi : ='planning de base'!$C$3:$C$18
3 - Dans la feuille 'gg' dans la plage de cellule H3:H373 la formule matricielle =TRANSPOSE(DECALER(Base_Planning;3+SIERREUR(EQUIV($A$1;Postes;0);0);;1))
Cette formule est à taper dans H3 après avoir sélectionné H3:H373.
Elle doit être obligatoirement validée par CTRL+MAJ+ENTREE.

Cette formule présuppose que les noms dans la plage poste soient uniques. Mais comme vous ne le précisez pas, j'ai décidé que oui. Elle fait une 'copie' de la ligne GG.

Pour les mises en formes conditionnelles, il faudrait être plus précise. Quelles cellules de quelles feuilles dans quelles conditions ???

Cordialement
 

Pièces jointes

  • pour excel download.xlsx
    73.7 KB · Affichages: 5
Dernière édition:

4rine

XLDnaute Nouveau
Bonjour,
Roblochon, merci pour votre réponse.
Votre réponse me permet de repréciser certaine choses.
Dans mon fichier j'ai nommé les cellules de l'onglet "planning de base" D15 à Q15 une à une, chacune leur nom. Et ce sont celles-ci, parce qu'elles sont nommées, que je voudrais voir surlignées mais automatiquement (je les ai surligné manuellement dans mon fichier joint)

Je nomme la cellule D15, gghis2812 (parce que c'est GG qui remplace DK ce jour) pour les besoins de ma formule onglet "GG" cellule F3
j'ai nommé
E15 gghis2912 pour les besoins de ma formule onglet "GG" cellule F4,
F15 gghis3012 pour les besoins de ma formule onglet "GG" cellule F5 etc... pour 14 cellules.
ma question est: existe t'il une méthode pour automatiser l'attribution du nom aux 14 cellules dans la logique ci-dessus.


1602443831726.png

Ce qui est important de savoir c'est que je vais créer un onglet par salarié comme "GG"
Votre méthode est intéressante mais le résultat donne les horaires de DK dans tout le calendrier de GG.
j'espère avoir été plus claire
Bonne soirée
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Par macro cela pourrait se faire (même si cela me paraît peu maintenable à long terme, surtout si vous ne connaissez pas VBA), mais il y a quelques points à éclaircir :

1 - votre système de nommage : 'gghis2812' peut faire référence à la cellule 'gg'!F3 pour le 28/12/2020 aussi bien qu' à la cellule 'gg'!F368 pour le 28/12/2021. Comment pensez-vous régler çà ? Rajouter l'année à vos noms ?

2 - dans votre future feuille 'DK' qu'apparaîtra-t-il pour le 28/12/2020 ? Ne risquez-vous pas de créer des références circulaires dans vos formules ?

3 - 16 lignes * 371 cellules = 5936 noms. Même si le nombre de noms est uniquement limité par la quantité de mémoire disponible (1,75 à 2 go pour excel 32bits), cela est un peu gros à gérer.

C'est parti pour faire une usine à gaz à laquelle je ne désire pas trop participer c'est pourquoi, je vous propose un premier jet d'une solution plus facilement exploitable dans le fichier joint.

Procédure :
1 - selectionnez les cellules 'planning de base'!D15:Q15 puis cliquer sur le bouton Remplacement.
2 - Une invite vous demandera de saisir les deux premières lettres du nom du remplaçant, pour la démonstration saisissez GG, validez.

La macro insèrera un commentaire dans chaque cellules sélectionnée : 'Remplacé par GG'
Pour chaque cellule elle créera une ligne de correspondance entre la personne prévue ce jour la (DKhis281220) et le remplaçant (GGhis281220) dans la table des remplacements qui se situe dans la feuille 'Remplacements'. Ce tableau est un Tableau structuré.


Votre formule de 'gg!F2' devient =RECHERCHEV(SIERREUR(GAUCHE(INDEX(T_Remplacements[Personne];EQUIV($B4;T_Remplacements[Remplaçant];0));2);$A$1);Planning.Base;$E4-2;FAUX)

Le bouton sur la feuille planning base n'est utilisable que si la sélection est dans les cellules de valeurs du planning.

Cordialement
 

Pièces jointes

  • pour excel download-rob 1.xlsm
    86.8 KB · Affichages: 8
Dernière édition:

4rine

XLDnaute Nouveau
Bonjour,
Merci pour votre réponse qui me fait avancer Roblochon.
1- vous avez raison cela concerne 6 cellules. Je renommerai les 6 cellules du bas du calendrier le cas échéant.
2- référence circulaire, je ne pense pas . Mais en effet, les mêmes horaires se retrouveront sur plusieurs salariés. Mais cela ne me gêne pas pour ce que je veux en faire.
3- je n'ai pas de connaissances là dessus. Je vous remercie de m'alerter .

Du coup je me demandais si je pouvais utiliser un seul nom par salarié. Par exemple pour GG j'utiliserai le nom gghis pour nommer ces plages: ='planning de base'!$D$15:$Q$15;'planning de base'!$R$13:$NJ$13
pensez-vous à une formule qui me permet de récupérer l'horaire date par date dans l'onglet salarié GG dans notre exemple correspondant aux plages qui auront été nommées gghis.
Cordalement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Voyez dans le fichier join :

La plage 'planning de base'!D13:NJ13 est nommé GGhis
La plage 'planning de base'!D15:Q15 est nommée GGhis2

La formule à tirer vers le bas dans 'gg'!F2 est devenue : =INDEX(SI(ET(LIGNE(1:1)<15;ESTREF(INDIRECT($A$1 &"his2")));INDIRECT($A$1 & "his2");INDIRECT($A$1 & "his"));1;LIGNE(1:1))
Où Ligne(1:1) tiré vers le bas retournera une série de 1 à 371 pour vos 371 lignes.

Voilà une solution qui paraît raisonable (en tout cas à moi)

Cordialement
 

Pièces jointes

  • pour excel download-rob 2.xlsx
    63.9 KB · Affichages: 6

4rine

XLDnaute Nouveau
Bonjour,
Merci pour votre proposition.
Je ne maîtrise pas du tout votre formule pour l'instant, mais ce qui me gène c'est que j'aurai pas mal de plage à nommer et pour plusieurs salariés et "his" ou "his2" sera à ressaisir à chaque fois?
est-ce qu'une formule avec Transpose ne serait pas plus simple.
Bonne journée
 

4rine

XLDnaute Nouveau
Bonjour,
Ce qu'on obtient avec votre proposition du poste #5 correspond exactement à ce que je cherche.
Je vous remercie.
Reste pour moi à faire vivre le fichier
cela me paraît peu maintenable à long terme, surtout si vous ne connaissez pas VBA

c'est en effet mon cas. Est-ce que c'est peu maintenable à cause de la taille que va prendre le fichier?

C'est parti pour faire une usine à gaz à laquelle je ne désire pas trop participer c'est pourquoi, je vous propose un premier jet d'une solution plus facilement exploitable dans le fichier joint.

Le peu que je l'ai testé et notamment avec plusieurs onglets salariés, cela fonctionne. Du coup je ne me rend pas compte de l'usine à gaz.

Je vous remercie encore pour toutes vos propositions.
Bonne soirée
 

Discussions similaires

Réponses
4
Affichages
1 K

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib