Masquer des lignes en fonction de différentes cellules

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
f
franckyy
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 19 septembre 2017
Version d'Excel : 2016

Message par franckyy » 19 septembre 2017, 20:49

Bonjour tout le monde,

je suis en train de créer un fichier excel qui est en fait un créateur de personnage pour une asbl qui organise des GN médiévaux.
Dans ce créateur, j'ai diverses compétences qui doivent être masquées si l'on ne remplit pas les conditions et inversement dès que les conditions sont remplis, les compétences liées doivent s'afficher.

Ma question: Est-il possible de masquer/afficher certaines lignes en fonction de la valeur (vide ou non vide) d'autres cellules?
Par exemple: Sur la feuille "Arbre combattant" , si la cellule A23 est vide alors cacher la ligne 24. Dans la même feuille, si la cellule A16 ou A17 ou A18 ou A19 est vide alors cacher la 23. Et à l'inverse, si ces cellules ne sont pas vides afficher les lignes correspondantes.
Ou encore, il se peut que les cellules d'une feuille masquent les lignes d'une ou plusieurs feuilles qui ne sont pas forcément à la même hauteur (exemple: si dans la feuille 2 la cellule A50 est vide alors cacher la ligne 12 de la feuille 3 et la ligne 27 de la feuille 4)

Voila, j'espère avoir été le plus clair possible.
A vos neurones :-)
Merci d'avance !!
Fichier-Vierge-Humain.xlsm
(117.76 Kio) Téléchargé 15 fois
Avatar du membre
curulis57
Passionné d'Excel
Passionné d'Excel
Messages : 3'747
Appréciations reçues : 226
Inscrit le : 4 janvier 2016
Version d'Excel : 2016 FR / 2019 FR

Message par curulis57 » 20 septembre 2017, 00:24

Salut Frankyy,

pas vraiment besoin de beaucoup de neurones mais plutôt d'infos solides et exhaustives sur les critères de masquage! :wink:
Une façon vite fait...
Private Sub Worksheet_Change(ByVal Target As Range)
'
Rows(23).Hidden = IIf([A16] = "", True, False)
'
End Sub
Envoie ton plan de masquage...

A+
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 20 septembre 2017, 00:46

Bonsoir,

Je ne vois pas très bien la raison qui pousserait à masquer tes feuilles catalogues de compétences... Il s'agit de feuilles sur lesquelles on opère des choix !

Et en ce qui concerne la récap, plutôt que masquer, il serait certainement plus productif de recueillir les compétences choisies dans chaque cas et composer la feuilles sans avoir de masquage à faire !
Cela sera indubitablement plus rapide ! :D

Cordialement.
f
franckyy
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 19 septembre 2017
Version d'Excel : 2016

Message par franckyy » 20 septembre 2017, 07:06

MFerrand a écrit : Et en ce qui concerne la récap, plutôt que masquer, il serait certainement plus productif de recueillir les compétences choisies dans chaque cas et composer la feuilles sans avoir de masquage à faire !
Cela sera indubitablement plus rapide.
Peux-tu développer la méthode que tu utiliserai?
Je sais bien que je ne suis pas optimal sur la façon de faire pour la feuille "récapitulatif" donc je suis preneur de toutes solutions :)

@ curulis, Merci. Je regarde ça aujourd'hui et je viens dire ce qu'il en est ensuite.

Merci à vous deux.
f
franckyy
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 19 septembre 2017
Version d'Excel : 2016

Message par franckyy » 20 septembre 2017, 09:10

@ curulis : Pour le plan de masquage, en fait, on vient simplement mettre une croix (un x ou X ou autre chose...) dans la colonne A correspondant à la compétence que l'on veut. Cependant on ne peut pas tout avoir dès le début. Il faut que certaines compétences soient choisies en premières pour en débloquer d'autres.
Ton code fonctionne bien pour une cellule et une ligne.
Par contre, si plusieurs cellules commandes une ligne ça ne marche pas...
Voici ce que j'aimerai faire de façon "simple" et qui ne marche pas lol.
Rows(23).Hidden = IIf([A16]  = "", True, False)
Rows(23).Hidden = IIf([A17]  = "", True, False)
Rows(23).Hidden = IIf([A18]  = "", True, False)
Je voudrais que dès que l'une ou l'autre cellule, voir 2 cellules et même les 3 cellules contiennent une croix (non-vide), j'ai la ligne 23 qui s'affiche.

@MFerrand : Je ne cherche pas à cacher des feuilles mais uniquement des lignes qui pourraient se trouver sur d'autres feuilles.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 20 septembre 2017, 11:06

Bonjour,

Je n'ai pas rouvert ton fichier, mais j'ai perçu un certain nombre de tes feuilles comme des catalogues destinés à sélectionner des compétences. Des sortes de "menu" donc !
A ce titre, je ne vois pas l'utilité de masquer des possibilités de choix, cela paraît même antinomique avec l'utilisation qui doit en être faite !

Mais je n'ai peut-être pas compris à quoi servaient ces listes de compétences ! :D

Pour ce qui est de la Récap, c'est simple : je parcours les feuilles de choix, je récupère les compétences retenues, s'il y a lieu je les réorganise, j'en fait naturellement un tableau (les tableaux ça sert à ça entre autres) qu'il me suffit d'affecter à la feuille Récap en une seule fois...
En regardant un peu plus globalement, cette partie de ton appli me semble consacrée à la définition de personnages. Il conviendrait donc de définir le processus conduisant à la définition d'un personnage : définition initiale et modalités selon lesquelles il sera modifié par la suite. Dès lors que la conception des opérations élémentaires conduisant à l'établissement et à la mise à jour d'une fiche personnage est définitivement achevée, la programmation de ces opérations, tenant compte de tous les éléments qui ont à intervenir, s'en trouvera considérablement facilitée ! Il n'y aura plus qu'à écrire le code correspondant !! :mrgreen:

Cordialement.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message