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

RE suite:

Tu peux aussi déprotéger la feuille au début de la macro et ré-appliquer la protection en fin de macro. Personnellement, je préfère la première solution.

J'oubliais de préciser que tu peux protéger tes feuilles au moyen d'une boucle à insérer dans la procédure d'ouverture du classeur (Sub Workbook_Open) avec le paramètre UserInterfaceOnly.

Cordialement.
 

Patrick75

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

je suis un peu perdu...

je souhaite que mon fichier fonctionne "Verrouillé". Et je souhaite que ma commande "oui,non" puisse afficher/masquer quand bien même le verrouillage est effectif....
 

Papou-net

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

je suis un peu perdu...

je souhaite que mon fichier fonctionne "Verrouillé". Et je souhaite que ma commande "oui,non" puisse afficher/masquer quand bien même le verrouillage est effectif....

Pour ta cellule,"oui/non" puisse être opérationnelle avec la protection de la feuille, il faut bien entendu qu'elle ne soit pas verrouillée:

Clic droit sur la cellule, "Format de cellule", "Protection" et décocher "Verrouillée"

Mais peut-être n'ai pas compris la question?

Si le problème persiste, peux-tu joindre une copie édulcorée de données confidentielles?

Cordialement.
 

Patrick75

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

Merci Papou-net
oui, la cellule "oui, non" est déverrouillée.

je joins la copie de la feuille concernée.
La macro marche bien tant que le fichier est déverrouillé. Comment pourrait-elle fonctionner avec le fichier verrouillé ?
le fichier joint est verrouillé pour le test. le code est indiqué bien sûr :)
Cordialement
Patrick
 

Pièces jointes

  • Exemple 2 PM.xlsm
    34.4 KB · Affichages: 26

Papou-net

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

RE:

Voici la procédure à ajouter dans le module ThisWorkBook:

Code:
Private Sub Workbook_Open()
Feuil1.Protect "abc", userinterfaceonly:=True
End Sub
Bien entendu, tu remplaces abc par ton mot de passe, entre guillemets.

Puis, pour que ça fonctionne, tu dois lancer cette procédure (F5) avant de tester.

Cordialement.
 

Patrick75

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

J'ai le sentiment d'abuser et je te prie de m'excuser de te solliciter autant.

partout je lis que la combinaison alt + F11 ouvre ThisWorkBook. Sur mon fichier, cette combinaison ouvre la page du code écrit pour masquer/afficher les lignes sur la réponse oui/non.
Or, je ne vois pas où je puis cliquer pour trouver le fameux ThisWorkBook ,
Cordialement,
 

Papou-net

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

RE:

ALT+F11 ouvre l'éditeur Visual Basic (VBE).

Voici la fenêtre VBE avec ThisWorkBook en pièce jointe

Tu places le curseur dans le Private Sub WorkBook_Open et ti cliques sur F5 pour lancer la macro. Sinon, tu enregistres et fermes le classeur, la macro s'exécutera à la prochaine ouverture.

Espérant avoir répondu.

Cordialement.
 

Pièces jointes

  • VBA.jpg
    VBA.jpg
    92.9 KB · Affichages: 41
  • VBA.jpg
    VBA.jpg
    92.9 KB · Affichages: 32
  • VBA.jpg
    VBA.jpg
    92.9 KB · Affichages: 27

Patrick75

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

Merci pour le coup de main.

Je ne sais pas pourquoi je n'obtiens pas la même chose que ce que tu m'as envoyé !! Mais enfin, je peux entrer le code que tu m'as communiqué !

Je suis parvenu à ThisWorkBook par la manœuvre suivante :
atl + F11 = affichage fenêtre Microsoft VBA
clique sur "Affichage"
clique sur "Explorateur de projets"
double clique sur "ThisWorkBook
et j'obtiens la fenêtre suivante : cf. photo jointe.

J'essayerai donc ce soir de voir si ça fonctionne :)

Merci beaucoup
à charge de revanche (humour)
Bien cordialement,
Patrick


Capture.jpg
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    37.7 KB · Affichages: 31
  • Capture.jpg
    Capture.jpg
    37.7 KB · Affichages: 40

Patrick75

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

Bon, ben ça ne marche pas !!!!
Je joins un fichier exemple au cas où.....
Le masqué/affiché fonctionne bien tant que le verrouillage n'est pas effectif.
Quand il est effectif, une fenêtre ouvre pour indiquer une erreur dans le code dans le ThisWorkBook

Si toutefois, il est encore possible de m'aider

Merci
Cordialement,
Patrick
 

Pièces jointes

  • Exemple Patrick75.xlsm
    41.3 KB · Affichages: 31

Papou-net

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

Bonsoir Patrick,

Lorsque tu fais référence au CodeName d'une feuille, il ne faut pas mentionner son nom.

Voici donc la macro corrigée:

Code:
Private Sub Workbook_Open()
Feuil4.Protect "XXX", userinterfaceonly:=True
End Sub
Là, ça devrait fonctionner.

Cordialement.
 

Si...

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

salut

Papou-net ne me contredira pas j'espère :D mais tu ne dois pas écrire les macros n'importe où !
Par exemple, l'évènementielle Private Sub Workbook_Open() doit être écrite dans la page de code de ThisWorkbook, l'évènementielle Private Sub Worksheet_Change(ByVal Target As Range) doit être écrite dans la page de code de la feuille concernée (clic bouton droit sur le nom de l'onglet puis bouton gauche sur Visualiser le code) !

Tu en as une illustration dans le fichier joint*.

* ne sois pas surpris, j'ai l'habitude de remplacer le nom de variable Target par un plus court R (initiale de Range)
 

Pièces jointes

  • Afficher Masquer lignes(VBA).xlsm
    36.3 KB · Affichages: 34

Patrick75

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

Merci Papou-net,
j'ai essayé sur mon fichier test et ça fonctionne. Me reste à tenter le coup sur mon fichier définitif.
Merci Si pour cette précision qui conforte mes débuts d'apprentissages en VBA réalisés grâce à vous qui nous apportez votre technicité et votre soutien sur ce forum.
Bien cordialement,
Patrick
 

Patrick75

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

Après avoir entré les codes dans le fichier original (Worksheet et ThisWorkBook), enfin, disons dans une copie car j'ai compris qu'il fallait être prudent, j'obtiens une demande de débogage sur le Woksheet avec le commentaire suivant : Erreur d'exécution '424' :

Private Sub Worksheet_Change(ByVal Target As Range)
If R.Address <> "$D$19" Then Exit Sub
Me.Unprotect "XXX"
Range("20:48,59:64,80:83").EntireRow.Hidden = IIf(R = "Non", 1, 0)
Me.Protect "XXX"
End Sub

c'est la ligne If R.Address <> "$D$19" Then Exit Sub qui est surlignée. Elle doit donc être le lieu de la difficulté.

J'ajoute que pour recopier les formules, j'ai commencé par tout effacer ce que j'avais déjà écrit pour recommencer sur une bonne base puis recopier strictement en modifiant les variables (numéro de feuille, cellule "oui/non" et lignes à masquer.

Pardon de vous redemander un coup de main...
cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
312 248
Messages
2 086 596
Membres
103 252
dernier inscrit
Ersar