Microsoft 365 Problème VBA lors de l'affichage de ligne masquée

Chris Linefield

XLDnaute Junior
Bonjour !

Je viens vers vous car je bloque sur un point.

Je vous explique ce que mon fichier excel fait :
- L'utilisateur clique sur une des cases à cocher dans la feuille "Demande initiale"
- Le code recherche la valeur de la cellule qui se trouve à gauche de la case à cocher dans la feuille "Liste" pour trouver une correspondance
- Si la valeur est trouvée, il copie l'ensemble des lignes qui correspond dans le tableau de la feuille "Analyse Impacts"
- Lorsque la feuille "Analyse Impacts" est modifiée, il actualise le VBA pour :
*Masquer toutes les lignes du tableau qui contient la valeur "Y" dans la colonne A
*Si dans la colonne "B" une cellule contient "Achats" et en colonne D elle contient "Impact sur coût Matière Première / Service ?" et que la colonne E contient "Oui", alors elle affiche les deux lignes en dessous.

Mon problème :
Si c'est deux lignes masquées en dessous, le code ne fait rien. Si c'est une ligne masquée en dessous et ensuite une ligne rempli, ça fonctionne. J'aimerais avoir une idée de comment faire pour que les deux lignes masquées puissent apparaitre... En sachant que j'ai coché deux cases pour voir si ça venait du fait que c'était la fin du tableau, mais le code ne s'exécute pas comme ça non plus. Que faire ?

Dans mon tableau excel, je ne travaille que sur la case à cocher "Achat" pour le moment. Vous pouvez me venir en aide ?
 

Pièces jointes

  • Xxxx_N-Olivier_Designation_ZCP_adjuvants_AUD22-12_Test_formulaire Excel.xlsm
    125 KB · Affichages: 8

Chris Linefield

XLDnaute Junior
re
on va le faire dans l'ordre
1) j'ai supprimé les cases à cocher: il suffit de cliquer dans la cellule pour qu'un X apparaisse ou disparaisse
==>quand l'item est coché, les lignes correspondantes de la feuille "Liste" sont copiées telles quelles dans la feuillle "Analyse impact"
==> quand l'item est coché, les lignes sont supprimées

a quoi servait le SA1 SA2...S22 que tu mets en colonne Z de la feuille Analyse impact?

pour l'instant.. aucune ligne n'est masquée ou affichée..

est ce que déjà.. ca correspond ?

Remarque: dans la feuile "Liste", la colonne "Masqué": tu as X ou Y... ne serait il pas plus logique et plus explicite de mettre un des deux couples "Yes / No, "Oui/Non"
Pour le moment, parfait. Attention, les lignes dans le screen doivent être visibles constamment.
1724935929810.png


X ou Y car c'est une colonne qui ne sera pas affichée à la fin, elle est juste la pour m'aider à afficher ou masquer les lignes.

Merci en tout cas !
 

vgendron

XLDnaute Barbatruc
j'ai modifié dans cette version pour que les couleurs ne soient pas recopiées (point 2)
et j'ai remis les deux lignes "tous services"

pour le point 3: on ne parlait jusqu'ici QUE du cas "Achat"..
mais;.pour les autres services, il peut aussi y avoir des lignes masquées qu'il faudra afficher si tu mets "oui"..
le code actuel n'a aucune chance de les afficher puisqu'il n'en tient pas compte du tout..

donc.. ce que je propose
1) une fois les lignes copiées (point 1)
2) on affiche ou masque les lignes selon la colonne "Masquée"==> 1ere partie de la macro UpdateHiddenRows qui masque les lignes "Y"

3) quand tu modifies la réponse "OUI" sur la ligne 10 (pour l'exemple)
==> on regarde si les lignes suivantes (11 12 13.....) sont masquées ET font partie du même service
==> dans ce cas, on les affiche
4) quand tu modifies la réponse "NON" sur la ligne 10 (toujours pour l'exemple)
==> on regarde si les lignes suivantes (11 12 13= font partie du meme service et on un "Y" en colonne A

la logique te semble t elle exacte?
 

Pièces jointes

  • Chris Linefield V1.xlsm
    125 KB · Affichages: 1

Chris Linefield

XLDnaute Junior
j'ai modifié dans cette version pour que les couleurs ne soient pas recopiées (point 2)
et j'ai remis les deux lignes "tous services"

pour le point 3: on ne parlait jusqu'ici QUE du cas "Achat"..
mais;.pour les autres services, il peut aussi y avoir des lignes masquées qu'il faudra afficher si tu mets "oui"..
le code actuel n'a aucune chance de les afficher puisqu'il n'en tient pas compte du tout..

donc.. ce que je propose
1) une fois les lignes copiées (point 1)
2) on affiche ou masque les lignes selon la colonne "Masquée"==> 1ere partie de la macro UpdateHiddenRows qui masque les lignes "Y"

3) quand tu modifies la réponse "OUI" sur la ligne 10 (pour l'exemple)
==> on regarde si les lignes suivantes (11 12 13.....) sont masquées ET font partie du même service
==> dans ce cas, on les affiche
4) quand tu modifies la réponse "NON" sur la ligne 10 (toujours pour l'exemple)
==> on regarde si les lignes suivantes (11 12 13= font partie du meme service et on un "Y" en colonne A

la logique te semble t elle exacte?
Franchement, je suis assez impressionné ^^"

Pour la logique de l'affichage des lignes c'est plus dans la feuille "Liste" que tu vas avoir la réponse, les lignes où il y a écrit "Si oui" ou "Si non", alors il affiche une ou plusieurs lignes, dans le cas du service "Industrialisation" par exemple, tu as une question, une ligne masquée, une question, une ligne masquée... Alors si ça affiche toutes les lignes masquées au premier oui, ça fausse la donne.

Je ne sais pas si je me suis bien exprimé
 

vgendron

XLDnaute Barbatruc
je te mets une nouvelle version qui corrige quelques bugs au niveau de l'affichage des lignes lorsqu'on ajoute ou supprime un service.

quand on ajoute un service ==> toutes les lignes Y (du service ajouté seulement) sont masquées
ensuite, quand tu choisis une réponse oui, les lignes à afficher (si il y en a) sont affichées==> et je ne traite plus QUE la question concernée.. avant, ca retraitait tout au risque de remasquer des questions par erreur

j'ai aussi ajouté une petite macro qui permet de colorer la liste des questions par service
colonne AK: liste des services == tu y mets la couleur que tu veux + appui sur le bouton==> la liste des questions est colorée.. c'est juste pour le fun et le visuel

j'ai aussi modifié tes listes de validations un peu partout pour faire référence aux listes sous forme de Table Structurée (plus facile à faire évoluer)
les TS qui ont encore un nom du type "Tableauxx"==> je ne vois pas où elles servent..
 

Pièces jointes

  • Chris Linefield V2.xlsm
    136.7 KB · Affichages: 1

Discussions similaires

Réponses
18
Affichages
295

Statistiques des forums

Discussions
313 865
Messages
2 103 078
Membres
108 521
dernier inscrit
manouba