Case à cocher - lignes qui s'affiche

Bonjour à tous,

j'ai fait un tour sur le forum mais ayant des notions plus que basiques voire quasi-nul en VBA, je n'ai pas trouvé ce que je cherchais.

Voici mon problème, je joint aussi mon fichier

Dans l'onglet "référentiel compétence", je souhaite que lorsque je coche une des caches de G12 à P12, il s'affiche dans l'onglet Fiche de poste, à partir de la case A51, les éléments que j'aurais choisi dans le premier onglet.

Je m'explique. Si l'on prend le chef de cuisine, je souhaite que dans l'onglet référentiel si l'on coche la case à cocher en G12, alors dans l'onglet Fiche à partir de la case A51, s'affiche l'un en dessous de l'autre les cases B15, B58, B70 et B202 faisant référence à l'onglet Référentiel.

On retrouverait dans l'onglet Fiche :

Hygiène

Sécurité

etc.

Je ne sais pas si ma demande est claire, je suis à votre disposition si vous avez besoin d'explications supplémentaires.

Merci d'avance pour votre réponse

Bonjour,

pourquoi ne "sortir" que

Hygiène

Sécurité

etc.

Alors que dans le tableau il n'y a pas de croix sur ces lignes et qu'il y a une multitudes de croix dans la première catégorie ?

Après sur la fiche de poste, pourquoi ne pas faire un choix par liste déroulante des postes plutôt qu'une série de SI pour tester si sur la feuille de compétence c'est telle ou telle qui est cochée ?

Sur votre fiche de poste une liste déroulante avec le choix du poste et ensuite par formule le reste se met à jour en fonction d'une base de données qui serait alors la feuille de compétences mais un peu retravaillée...

Le principe se rapproche un peu de PROSPER... une base de données avec des "postes" puis une liste de compétence qui sera mise "à jour" en fonction du poste choisi...

Mais les fiches de "Personnel" de PROSPER ne correspondent pas à votre fiche de poste, c'est juste pour le principe.

@ bientôt

LouReeD

Merci de votre réponse,

Je comprends votre première réponse pour les "X" sur les grands items. C'était simplement pour ne pas mettre de croix aux titres, mais pourquoi pas, fondamentalement cela ne change rien pour moi.

Pour la liste de choix, pourquoi pas aussi. Mais dans ce cas comment mettre en place une fonction de recherche dans la base de données pour sélectionner seulement les cas voulues B15, B58, B70 et B202 pour le chef de cuisine ?

Quelles modifications devrais-je apporter à l'onglet référentiel? Je vous demande ca car ma hiérarchie tient assez à la présentation du premier onglet ...

Je vais regarder pour les fiches Prosper

Merci de votre retour

un essai :

@ bientôt

LouReeD

Merci pour cette proposition.

Dans l'idée il s'agit de cela. Pourriez vous m'expliquer votre méthode? Lorsque j'applique cela à mon fichier final cela ne fonctionne pas. Pourquoi prendre la plage A50 à A283 ?

Parce que le problème que je rencontre avec votre fichier, est que si je coche "Plan de travail" dans hygiène -> nettoyage et désinfection, celui ci ne s'ajoute pas à la liste. EDIT : il faut "recliquer la liste déroulante"

Je souhaiterais pour affiner le systeme, n'afficher que les titres et les sous titres. Or j'ai vu dans votre macro que vous selectionné toute la colonne. Est-il possible de faire une selection de cellule?

Merci d'avance

J'ai essayé d'appliquer à mon fichier final la macro que vous avez faite, mais rien ne s'affiche dans la fiche de poste.

J'ai copier les lignes de VBA dans fiche de poste et dans le module.

Jai, dans la fiche de poste, copier la formule rechercheH dans la colonne A et fait un tri.

Mais rien ne s'affiche Quelle(s) étape(s) est ce que j'ai manqué?

Merci d'avance

Bonjour,

le principe est "simple" :

à partir de la ligne 51 de la feuille "fiche" ajout des intitulés de la feuille "compétence", j'ai personnellement choisi de créer un décalage horizontal en fonction des "sous compétences".

Sur la feuille "fiche" ajout d'une colonne où se trouve en face de chaque intitulé une formule afin d'afficher un VRAI ou rien en fonction qu'il y a une croix (ou autre chose) dans le tableau de compétence. Pour faire ce teste le tableau compétence est créer sous Excel et il correspond à la plage de cellule représentant ce tableau. On fait une recherche horizontal dans ce tableau par rapport à la valeur de la cellule C9 qui correspond au nom du poste, une fois la colonne du poste trouver on regarde si en correspondance de l'intitulé il y a autre chose que rien (<>""), si c'est le cas alors VRAI sinon rien "".

La macro de masquage démasquage des lignes est lancée dès que la cellule C9 est modifiée.

Il est vrai qu'on devrait le faire dès que la feuille est activée afin de mettre à jour une modification de "croix" sur la feuille compétence !

La liste des poste en C9 est issue de la liste qui e trouve sur la feuille LouReeD, mais ceci dit elle peut être exportée par rapport à la ligne d'entête de la feuille "Compétences" !

Je retravaille un peu dessus et on en reparle ?

@ bientôt

LouReeD

Bonsoir,

voilà avec quelques explications :

@ bientôt

LouReeD

Bonjour,

Merci pour toutes vos explications. Cela fonctionne pour mon fichier cuisine.

Aujourd'hui je dois adapter votre système a un autre service : les étages. Et il s'appliquera ensuite aux autres services de l'établissement.

Le problème est que lorsque je modifie la liste des postes pour mettre les métiers des étages, La liste déroulante se modifie, mais quand je sélectionne un des métiers dans la liste déroulante, la liste des compétences dans la fiche de poste ne se modifie plus.

Comment faire pour adapter le fichier ?

Merci par avance et bonne journée

Bonjour,

je vais essayer de vous expliquer tout en étant clair, et j'en ai pas l'habitude ! (d'être clair ! évidemment )

Tout d'abord je vous explique la formule de la feuille "Fiche de poste" :

=SI(RECHERCHEH($C$21;Compétences;LIGNE()-49;FAUX)<>"";VRAI;"")

RECHERCHEH = c'est une fonction qui fait une recherche horizontale, mais que cherche t elle ?

RECHERCHEH(Valeur_cherchée ; Tableau_de_recherche ; Numéro_de_ligne_de_ce_tableau_dont_la_valeur_est_à_renvoyer_si_la_recherche_aboutie ; Précision_de_recherche)

Pour votre projet :

Valeur_cherchée ($C$21) : ici il faut mettre la référence de la cellule où le choix du métier est fait (vous avez bon)

Tableau_de_recherche (Compétences) : ici il faut mettre le nom du tableau nommé sous Excel qui correspond au tableau de compétences avec en ligne d'entête les métiers et en ligne suivante un "X" ou rien suivant que l'on veut que l'intitulé de la ligne correspondante est du métier ou pas

Numéro_de_ligne_de_ce_tableau_dont_la_valeur_est_à_renvoyer_si_la_recherche_aboutie (LIGNE()-49) : ici il faut mettre un 2 pour renvoyer la valeur de la ligne 2 du tableau de compétence, donc ligne 2 = première ligne de donnée au niveau des intitulés, car la ligne 1 du tableau est celle des noms des métiers. Si vous mettez un 5, cela renverra la valeur de la 5 ième ligne donc l 4 ième ligne de donnée.

Précision_de_recherche (FAUX) : ici nous recherchons une valeur exacte, c'est à dire on recherche un métier "cuisinier" et rien d'autre, donc pas de "tolérance" sur la recherche donc FAUX.

Fonction SI : =Si(test_logic;Ce qu'il faut faire si le test est vrai; ce qu'il faut faire si le test est faux)

Test logic (RECHERCHEH($C$21;Compétences;LIGNE()-49;FAUX)<>"";) : ici on test si la recherche renvoie autre chose que rien (est différent <> de rien "")

Ce qu'il faut faire si le test est vrai (VRAI) : ici si la recherche revoie autre chose que rien alors on affiche dans la cellule la valeur VRAI

ce qu'il faut faire si le test est faux ("") : ici on affiche rien dans la cellule si le test est faux

En d'autre termes : la formule de la ligne 51 affiche "VRAI" si la recherche du métier en ligne 2 renvoie autre chose que rien (dans votre projet vous êtes parties sur des "X")

mais comment comprendre le 2 dans cette formule :

=SI(RECHERCHEH($C$21;Compétences;LIGNE()-49;FAUX)<>"";VRAI;"")

le 2 correspond en fait à "LIGNE()-49" où la fonction LIGNE() est égal au numéro de ligne de la feuille Excel où se trouve cette fonction, donc pour la première formule qui se trouve en ligne 51, LIGNE() renvoi 51 !

Et 51-49 = 2

Pourquoi faire ceci ? Tout simplement pour pouvoir "tirer" la formule vers le bas sans à avoir à modifier constamment cette valeur

En effet la formule tirée en ligne 52 donnera automatique 3 car 52-49 = 3

Donc déjà au niveau de votre fichier "Etage" il vous faut reprendre les formules, la première en fait afin de corriger cela.

En effet vous avez laissez le 49 qui en fait est égal à la première ligne d'intitulé de la fiche de poste -2 (premier fichier : 51-2 = 49)

Hors sur ce nouveau fichier, la première ligne est 49 ! donc dans la formule il faut remplacer 49 par (49-2) 47 !

Ca c'est pour corriger l'erreur de formule du fichier ETAGE

Ensuite, les données qui se trouvent en colonne B et autre à partie de la ligne 47, doivent correspondre en tout point aux lignes des intitulés du tableau compétences de la feuille Compétences.

Là sur le fichier ETAGE les intitulé du premier fichier sont présent... Ce n'est pas bon. Il vous suffit de sélectionner les intitulés du tableau compétences, clic droit copier, puis sur la feuille "fiche de poste" sélectionnez la cellule B47, clic droit collage spéciale - valeurs. Le tour est joué !

Ensuite il y a un conflit de nom sur la liste déroulante. Pour s'en apercevoir il suffit sur le ruban de sélectionner "Formule" puis "gestionnaire des noms".

Une fenêtre s'ouvre et vous aurez la chance de voir qu'il y a 3 "Les_Postes" dont deux avec des références obsolètes (#REF!)

Supprimez les 3, et je vous expliques comment créer cette liste facilement, mais avant fermer cette fenêtre de gestionnaire de nom.

A présent allez sur la feuille "Compétence", sélectionnez la ligne d'entête qui correspond aux différent nom de métier, pour le fichier ETAGE ce sont les cellules qui vont de G13 à J13.

Une fois la sélection faite, en haut à gauche de la feuille Excel apparaît dans une barre de texte la valeur "G13" qui correspond à la cellule active (pour une plage de cellule c'est celle qui est sélectionnée en premier lors de la sélection de la plage)

Entrez dans cette barre de texte en cliquant gauche avec la souris. G13 se "sélectionne" il passe sur fond bleu et se positionne sur la gauche de la barre, à ce moment il vous suffit de tapez au clavier le nom de la plage sans espaces ni caractères spéciaux et le nom ne doit pas commencer par un chiffre, dans notre cas il vous suffit d'entrer Les_Postes puis la touche [entée] pour valider.

Voilà, votre liste Les_postes est définie, pour vous en assurez, sélectionner la plage allant de G3 à J3, au lieu de voir G3 dans la barre de texte il y aura Les_Postes !

Voilà ceci était les corrections sur les feuilles Excel, mais il vous faut récupérer les codes VBA du dernier fichier que je vous ai envoyé !

Pour accéder à VBA il vous faut faire [Alt]+[F11].

En ouvrant simultanément les deux fichiers, vous serez à même d'effectuer les copier / coller aux même endroit d'un fichier à l'autre.

L'idéal pour une complète compatibilité serait que la première ligne des intitulés sur les feuilles Fiche de poste se trouve au même numéro de ligne Excel et non pas comme maintenant avec le premier fichier en ligne 51, le fichier ETAGE en ligne 49 etc...

Lemieux est de partir en ligne maximale, par exemple 70 pour toutes les fiches et il vous suffira de masquer les lignes en trop sur les fiches. Si vous choisissez cette option, au niveau des codes VBA il faudra remplacer le 51 par 70...

Voilà et bon courage à vous.

@ bientôt

LouReeD

MERCI !

En fait ce que je ne comprenais pas c'etait l'affichage des compétences dans la fiche de poste. Je pensais que ca allait chercher les données dans le référentiel. Donc bétement pour les étages j'avais laissé la cuisine pensant que ca allait se modifier seul.

Je vous remercie pour le temps que vous avez passé à me répondre et surtout pour votre patience face à mon manque de connaissances en VBA et à l'utilisation poussée des formules RECHERCHEH.

Je vous souhaite bonne continuation. Je croise les doigts pour que cela fonctionne aussi pour mes autres fichiers.

Bonne journée

Bonjour,

merci pour votre merci !

Si vous avez des soucis vous savez où aller : Excel-Pratique.com !!!

Bon courage à vous pour la suite des transformations et @ bientôt

LouReeD

Bonsoir,

juste en passant, les boites à cocher sur la feuille "compétences" ne sont plus utiles...

@ bientôt

LouReeD

Rechercher des sujets similaires à "case cocher lignes qui affiche"