Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Patrick75

XLDnaute Junior
Bonjour à tous,

n'ayant pu résoudre la difficulté vba à partir des nombreux exemples proposés dans le forum (y'a toujours des différences infranchissables pour un néophyte), je souhaite un coup de main à partir du fichier joint.

à l'ouverture de mon fichier, certaines lignes seront masquées
à la réponse "oui" dans une cellule, ces lignes devront apparaître
à la réponse "non" dans la même cellule, elles devront être masquées à nouveau.

Merci de prendre le temps de me dépanner

cordialement
Patrick
 

Pièces jointes

  • Exemple PM.xlsx
    10.3 KB · Affichages: 46
  • Exemple PM.xlsx
    10.3 KB · Affichages: 64
  • Exemple PM.xlsx
    10.3 KB · Affichages: 65

Papou-net

XLDnaute Barbatruc
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Bonsoir Patrick,

Ci-joint ton fichier modifié avec les macros qui vont bien.

Cordialement.

Edit: Bonsoir QI dhuitre.
 

Pièces jointes

  • Exemple PM.xlsm
    17 KB · Affichages: 77
Dernière édition:

Patrick75

XLDnaute Junior
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Qi dhuitre et Papou-net,

la macro ne fonctionne pas dans mon fichier où je voulais la placer. ci-joint la capture d'écran de la vba qui pose problème si toutefois vous pouvez comprendre ce qui se passe, je vous remercie de me dépanner.

(les numéros de ligne sont les bons, la cellule D18 contient la liste "oui", "non", le nom de la feuille où doit agir la macro est "Enveloppe commune")

Cordialement, Patrick

Capture Worksheet.jpg
 
Dernière édition:

Patrick75

XLDnaute Junior
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

mapomme,

merci d'être intervenu. J'ai remplacé la partie du code comme tu me le proposais mais ça ne fonctionne pas plus. cf. la capture d'écran.
j'ai obtenu le message suivant :
"erreur d'exécution 9. L'indice n'appartient pas à la sélection"

j'ai essayé autre chose en ôtant le "s" à "Sheets" mais c'est sans effet (apparent).

Cordialement,
Patrick





Capture Worksheet2.jpg
 

QI dhuitre

XLDnaute Junior
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Bonjour à tous
papou-net ;)

Patrick75,

-Vérifiez l'exactitude de l'orthographe entre la feuille et la macro
-->dans l'énoncé vous écrivez "enveloppe commune" et dans la macro il y a d'écrit "enveloppe_commune" a un détail près ce n'est pas la même chose.

-Vérifiez également que la macro est écrite dans la bonne feuille.

:)
 

Patrick75

XLDnaute Junior
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Merci QI dhuitre pour l'aide.

en effet, je m'étais imaginé qu'il fallait remplacé un espace par le tiret du 8 !!!
Bref, en indiquant "sheets" (au pluriel, car au singulier, ça ne marche pas) et en écrivant le bon nom de la feuille, la macro fonctionne.

Merci encore,
bien cordialement,
Patrick
 

Patrick75

XLDnaute Junior
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Plutôt oui :) J'imagine que la raison est que j'écris sur le Worksheet de la page en question ?

Mes ennuis ne sont pas terminés car si la macro fonctionnait sur mon fichier "test" (une copie du fichier original), elle ne fonctionne pas sur le fichier original. j'ai un message d'erreur. cf. photo jointe. J'ai recopié strictement ce que j'avais sur le fichier test en modifiant les variables (numéros de ligne et nom de la cellule "oui,non".)
Peut-être auras-tu une idée du pourquoi ?
Cordialement,
Patrick

Capture Worksheet3.jpg
 

QI dhuitre

XLDnaute Junior
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Oui pour la première phrase et non pour la seconde. Je n'ai pas beaucoup de connaissance avec cette sale bête capricieuse (vba) et totalement au pif je dirais :

vérifiez que la totalité des lignes (celles qui sont écrites dans la macro 20:48,59:64 etc...) est homogène. Quelles aient toutes le même statut (masquées ou non masquées) à l'execution de la macro.
 

Papou-net

XLDnaute Barbatruc
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Bonjour Patrick, Qi dhuitre, mapomme et tutti,

Patrick,

Il est probable que ta macro soit lancée depuis une autre feuille que "Enveloppe commune".

Essaie donc en enlevant la référence de cette feuille comme ceci:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("20:48, 59:64, 79:82").EntireRow.Hidden = IIf(Range("D3") = "Non", True, False)
End Sub
En effet, tenter de masquer/afficher des lignes sur une feuille non active entraîne une erreur.

Par ailleurs, pour éviter toute erreur dans l'écriture du nom des feuilles (cf erreur précédente), je préconise d'utiliser le codename des feuilles (le nomde gauche dans la liste des feuilles). Ca présente également l'avantage de pouvoir renommer les onglets ultérieurement sans avoir besoin de modifier le code.

Cordialement.
 

Patrick75

XLDnaute Junior
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Bien vu !
En fait, mon fichier doit être utilisé verrouillé. Si j'ôte le verrouillage, la fonction masqué/affiché sur ma commande "oui,non" fonctionne très bien.
y'a-t-il une possibilité de faire fonctionner cette commande avec le verrouillage du fichier ?
Cordialement,
 

Papou-net

XLDnaute Barbatruc
Re : Afficher des lignes en fonction de la valeur "oui" ou "non" d'une cellule

Bien vu !
En fait, mon fichier doit être utilisé verrouillé. Si j'ôte le verrouillage, la fonction masqué/affiché sur ma commande "oui,non" fonctionne très bien.
y'a-t-il une possibilité de faire fonctionner cette commande avec le verrouillage du fichier ?
Cordialement,

RE:

Oui, il suffit d'activer la protection par VBA, en mentionnant le paramètre suivant:

Code:
Feuil1.Protect userinterfaceonly:=True
La feuille sera ainsi protégée contre l'utilisateur mais n'empêchera pas les macros d'agir normalement.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 319
Membres
102 862
dernier inscrit
Emma35400