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: 9

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

Chris Linefield

XLDnaute Junior
Bonjour @vgendron

Je suis désolé de revenir avec ce sujet mais on m'a remonté une dernière chose qui n'a pas été ajouté...

Voici ce que l'on m'a demandé :
Onglet Analyse d’Impacts :

Une problématique générale (je ne l’ai pas mis en détail partout) : cela affiche bien toutes les questions mais lorsqu’on doit saisir du texte :

  1. (corriger le format pour avoir saisie libre au lieu des choix),
  2. il ne faut pas que cela masque la ligne suivante
  3. Si on efface le texte => la ligne ne se réaffiche pas => Corriger car en cas d’erreur on doit pouvoir changer d’avis
  • Achats : Question « Impact sur coût Matière Première / Service ? » => Si la réponse est oui
    • Les 2 lignes suivantes doivent s’afficher : Corriger pour afficher les 2 lignes
      • « si oui, estimation nouveau coût » au format libre (pas de cellule de choix : je l’ai paramétré dans l’onglet liste mais ça ne le prend pas => Corriger format de cellule
      • Lorsqu’on saisit du texte : cela masque la 2ème ligne => Corriger
      • Coût actuel => Corriger : doit s’afficher au format libre
  • Base de Données :
    • catégorie Création de nouvelles références : manque la ligne « Produits finis ? » (elle apparaît pour Consommation des stocks : c’est normal)
    • catégorie Consommation des stocks : Question « si non, évaluation du montant…. » => la ligne se masque lorsque la réponse est « oui » au lieu de « non » => corriger dans la macro non au lieu de oui pour cette question
  • Industrialisation :
    • 2 fois la Ligne : « si oui : décrire » apparaît => format de cellule avec choix au lieu de texte à saisir => à corriger
  • Méthodes :
    • Si oui : décrire => Corriger le format de cellule (pas des choix mais libre)
  • Contrôle Qualité :
    • Si oui : quelles seront les conditions de déblocage => Corriger le format de cellule (pas des choix mais libre)
  • Packaging :
    • Si oui : lister ci-contre => Corriger le format de cellule (pas des choix mais libre)
  • Projet :
    • Si oui : Cf R&D – Labo…) préciser ci-contre => Corriger le format de cellule (pas des choix mais libre)
  • Développement :
    • Si oui : Cf R&D – Labo…) préciser ci-contre => Corriger le format de cellule (pas des choix mais libre)
  • Labo :
    • Si oui : lister ci-contre les performances à tester => Corriger le format de cellule (pas des choix mais libre)
  • Validation de conception (dont Usability) :
    • Si oui : préciser ci-contre => Corriger le format de cellule (pas des choix mais libre)
  • Labelling :
    • Si la réponse est oui
      • => afficher toutes les lignes
      • Corriger le format des cellules sur toutes les lignes (pas des choix mais libre)
    • Si la réponse est non
      • Masquer toutes les lignes
  • Biocompatibilité :
    • Si oui à l’une des questions ci-dessus, …. => Corriger car pour l’instant, la ligne se masque si on répond non sur la ligne juste au-dessus
      • Il faut que s’il y a un seul oui parmi toutes les réponses au-dessus => il faut que la ligne s’affiche
      • Corriger le format de cette ligne pour avoir saisie libre
  • Gestion des Risques :
    • Si oui : cela affiche plusieurs lignes pour saisir : Corriger le format des cellules => laisser la saisie libre
    • Dès qu’on saisit du texte sur une ligne, ça masque les suivantes => Corriger
  • Réglementaire :
    • Partout où il y a la question « Est-ce applicable » ? il faut afficher systématiquement les 2 lignes => c’est ok MAIS Corriger car dès qu’on répond « oui » à la 1ère question des 2 : ça masque la 2ème => ne pas masquer
    • Si oui : Modification à notifier : si oui : masque la ligne suivante => Corriger. Si on change la réponse : non au lieu de oui => les lignes ne se réaffichent pas => Corriger
    • Question Coût : Corriger le format de la cellule : soit format monétaire (Euros) soit si plus simple saisie libre.
  • Environnement-SST :
    • Modification de l’analyse de risques (AI / IE ) ? Si oui : afficher les 2 lignes : Ok => corriger le format de cellule => laisser la saisie libre
    • Dès qu’on saisit du texte sur la 1ère ligne, cela masque la ligne suivante => Corriger : ne pas masquer la ligne suivante
  • Infrastructures :
    • Ligne « AUTRES » => Corriger le format des cellules => laisser la saisie libre
Il faudrait également que les lignes copiées soient bloqués afin que l'utilisateur ne puisse rien modifier dedans (Après la copie des lignes).

Je suis désolé de te demander autant, n'hésite pas à me dire non si tu ne souhaites pas poursuivre.

Merci en tout cas d'avance pour la lecture et l'aide si tu veux bien !

Je reste dispo si besoin
 

Discussions similaires

Réponses
18
Affichages
526

Statistiques des forums

Discussions
314 698
Messages
2 112 019
Membres
111 399
dernier inscrit
KDM