Masquer une feuille si cellules vides
Résolu
Mowkey
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vous soumets mon problème :
J'ai un classeur avec 3 feuilles.
J'aimerais que la troisième feuille soit masqué si 4 cellules de la deuxième feuille ne sont pas remplies.
Je sais que c'est possible, mais je n'arrive pas savoir comment.
Merci pour votre aide !
Mowkey
Je vous soumets mon problème :
J'ai un classeur avec 3 feuilles.
J'aimerais que la troisième feuille soit masqué si 4 cellules de la deuxième feuille ne sont pas remplies.
Je sais que c'est possible, mais je n'arrive pas savoir comment.
Merci pour votre aide !
Mowkey
A voir également:
- Masquer une feuille si cellules vides
- Masquer une conversation whatsapp - Guide
- Bruler une feuille de laurier - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Comment supprimer une feuille sur word - Guide
8 réponses
Bonsoir
Possible par macro qui s'exécute à l'ouverture du classeur
Macro à mettre dans This workbook de l'editeur VBA (ALT+F11 pour ouvrir éditeur) en changeant les reférences des cellules qui doivent être vides
Et pour demasquer le feuille3 dès que les 4 cellules sont remplies, macro à mettre dans le Worsheet de Feuille 2 (modifier les references ici aussi)
Cdlmnt
Possible par macro qui s'exécute à l'ouverture du classeur
Macro à mettre dans This workbook de l'editeur VBA (ALT+F11 pour ouvrir éditeur) en changeant les reférences des cellules qui doivent être vides
Private Sub Workbook_Open() With Sheets(2) If .Range("A1") = "" And .Range("B3") = "" And .Range("B5") = "" And .Range("C2") = "" Then Sheets(3).Visible = False End If End With End Sub
Et pour demasquer le feuille3 dès que les 4 cellules sont remplies, macro à mettre dans le Worsheet de Feuille 2 (modifier les references ici aussi)
Private Sub Worksheet_Change(ByVal Target As Range) With Sheets(2) If .Range("A1") <> "" And .Range("B3") <> "" And .Range("B5") <> "" And .Range("C2") <> "" Then Sheets(3).Visible = True End If End With End Sub
Cdlmnt
Bonjour,
Merci pour votre réponse !
Cependant, le résultat est que lorsque j'ouvre mon document, en effet la feuille 3 est masquée, mais elle n'apparait pas lorsque les 4 cellules de la feuille 2 sont remplies.
Pourtant, j'ai bien remplacé "A1", "B3", "B5", "C2" par les 4 cellules en question de la feuille 2.
Dois-je modifier "Sheets(2)" et "Sheets(3)" dans le code ?
Merci pour votre réponse !
Cependant, le résultat est que lorsque j'ouvre mon document, en effet la feuille 3 est masquée, mais elle n'apparait pas lorsque les 4 cellules de la feuille 2 sont remplies.
Pourtant, j'ai bien remplacé "A1", "B3", "B5", "C2" par les 4 cellules en question de la feuille 2.
Dois-je modifier "Sheets(2)" et "Sheets(3)" dans le code ?
Bonjour
Si la macro qui cache la feuille fonctionne c'est que ce sont bien les bonnes feuilles et les bonnes cellules et celle qui démasque devrait fonctionner aussi
Est ce que tu l'as bien mise au bon endroit ?
Ouvrir Editeur VBA Clic droit sur Feuil2 dans l'arborescence à gauche et Code mettre la macro 2 dans la page blanche
Si ça ne fonctionne toujours pas postes un exemple de ton fichier sur cjoint.com et reviens indiquer le lien fourni, je regarderais
Cdlmnt
Si la macro qui cache la feuille fonctionne c'est que ce sont bien les bonnes feuilles et les bonnes cellules et celle qui démasque devrait fonctionner aussi
Est ce que tu l'as bien mise au bon endroit ?
Ouvrir Editeur VBA Clic droit sur Feuil2 dans l'arborescence à gauche et Code mettre la macro 2 dans la page blanche
Si ça ne fonctionne toujours pas postes un exemple de ton fichier sur cjoint.com et reviens indiquer le lien fourni, je regarderais
Cdlmnt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
La macro de demasquage n'est pas reliée à la bonne feuille, elle est dans le worksheet de la feuille Eval1 alors qu'elle doit être dans celui de la Feuille Synthese (Selectionner Synthèse dans l'arborescence à gauche de l'éditeur et coller la macro)
(L'indication Sheets(2) dans la macro ne fait pas référence à la Feuille 2 mais à la 2eme feuille dans l'ordre des onglets)
Cdlmnt
La macro de demasquage n'est pas reliée à la bonne feuille, elle est dans le worksheet de la feuille Eval1 alors qu'elle doit être dans celui de la Feuille Synthese (Selectionner Synthèse dans l'arborescence à gauche de l'éditeur et coller la macro)
(L'indication Sheets(2) dans la macro ne fait pas référence à la Feuille 2 mais à la 2eme feuille dans l'ordre des onglets)
Cdlmnt
Bonjour,
Je me permets de rajouter une question :
J'aimerais qu'en + de la feuille 3, que les feuilles 4, 5, 6, 7 soit masquées si les 4 cellules de la deuxième feuille ne sont pas remplies.
J'ai tenté plusieurs modif' dans le worksheet, mais ça bug.
Cordialement.
Je me permets de rajouter une question :
J'aimerais qu'en + de la feuille 3, que les feuilles 4, 5, 6, 7 soit masquées si les 4 cellules de la deuxième feuille ne sont pas remplies.
J'ai tenté plusieurs modif' dans le worksheet, mais ça bug.
Cordialement.
Bonjour
Puisque les feuilles se suivent tu peux procéder par une boucle pour masquer les feuilles dans Workbook_Open
Procéder de même dans la macro de démasquage avec True à la place de False
Cdlmnt
Puisque les feuilles se suivent tu peux procéder par une boucle pour masquer les feuilles dans Workbook_Open
Private Sub Workbook_Open() With Sheets(2) If .Range("A1") = "" And .Range("B3") = "" And .Range("B5") = "" And .Range("C2") = "" Then For n=3 to 7 Sheets(n).Visible = False Next End If End With End Sub
Procéder de même dans la macro de démasquage avec True à la place de False
Cdlmnt