Note: The other languages of the website are Google-translated. Back to English

Comment masquer ou afficher une feuille de calcul spécifique en fonction de la valeur de la cellule dans une autre feuille?

Existe-t-il des méthodes pour masquer ou afficher un onglet de feuille de calcul spécifique en fonction du contenu d'une cellule dans une autre feuille? Par exemple, lorsque je saisis le texte «Oui» dans la cellule G1 de la feuille Sheet2, je veux que la feuille Sheet1 soit masquée, et lorsque je saisis «Non», la feuille Sheet1 s'affiche immédiatement. Comment pourrais-je résoudre ce problème dans Excel?

Masquer ou afficher un onglet de feuille de calcul spécifique en fonction de la valeur de la cellule avec le code VBA


flèche bleue bulle droite Masquer ou afficher un onglet de feuille de calcul spécifique en fonction de la valeur de la cellule avec le code VBA

Pour masquer ou afficher un onglet de feuille de calcul spécifique en fonction d'une valeur de cellule dans une autre feuille de calcul, le code VBA suivant peut vous rendre service, procédez comme suit:

1. Accédez à la feuille de calcul qui contient la valeur de cellule sur laquelle vous souhaitez masquer une autre feuille.

2. Cliquez avec le bouton droit sur l'onglet de la feuille et sélectionnez Voir le code, dans le sauté Microsoft Visual Basic pour applications fenêtre, veuillez copier et coller le code suivant dans la fenêtre Module vide, voir capture d'écran:

Code VBA: masquez ou masquez un onglet de feuille de calcul en fonction de la valeur de la cellule:

Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Yes" Then
Sheets("Sheet1").Visible = True
Else
Sheets("Sheet1").Visible = False
End If
End Sub

doc hide tab en fonction de la valeur de cellule 1

Remarque : Dans le code ci-dessus, G1 et Oui sont la cellule et le contenu de cellule sur lesquels vous souhaitez vous baser, et Sheet1 est la feuille spécifique que vous souhaitez masquer ou afficher. Vous pouvez les modifier selon vos besoins.

3. Ensuite, enregistrez et fermez ce code, lorsque vous entrez «Non» ou un autre texte dans la cellule G1, Sheet1 est masqué, mais si vous entrez «Oui» dans la cellule, Sheet1 s'affiche à la fois, voir les captures d'écran:

doc hide tab en fonction de la valeur de cellule 2
1
doc hide tab en fonction de la valeur de cellule 3

 


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine

 

Commentaires (18)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour
Merci pour le tuyau. Je dois faire le même scénario mais pas sur une seule cellule (G1 dans ce cas) mais sur toutes les cellules de la colonne G. J'ai essayé avec "Range" mais cela n'a pas fonctionné.

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Si Plage("X2:X100") = "" Alors
Sheets("EU TASK BASED MEASUREMENTS").Visible = False
autre
Sheets("EU TASK BASED MEASUREMENTS").Visible = True
Si fin
End Sub


Merci d'avance
Ce commentaire a été minimisé par le modérateur sur le site
Une chance que cela ait été répondu? Je suis également confronté à ce scénario où toute une plage entre en jeu au lieu d'une seule cellule... J'ai utilisé ce même codage avec les mêmes résultats.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai fait 2 feuilles de travail comme suit:
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Si [C20] = "Oui" Alors
Feuilles("feuille1").Visible = Vrai
autre
Feuilles("feuille1").Visible = False
Si fin
Si [C22] = "Oui" Alors
Feuilles("feuille2").Visible = Vrai
autre
Feuilles("feuille2").Visible = False
Si fin
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Très utile!
Ce commentaire a été minimisé par le modérateur sur le site
Je veux voir si vous pouvez m'aider avec mon problème. J'ai eu essentiellement ce code exact dans une feuille que j'utilise mais avec une fonction ou pour que la réponse puisse être "oui" ou "vrai". Cependant, la feuille qui est masquée/affichée se remasque parfois pour des raisons inconnues. Il s'affichera lorsque je taperai oui, mais lorsque je l'utiliserai plus tard, il sera à nouveau masqué, même si la valeur de la cellule est toujours oui. Avez-vous une idée de pourquoi cela pourrait se produire et/ou comment y remédier ?
Code de référence :
Private Sub Worksheet_Change(ByVal Target As Range)'Masque/affiche la page d'étalonnage
Si [B18] = "Oui" Ou Target.Value = "True" Alors
Sheets("XXX Verification").Visible = True
autre
Sheets("XXX Verification").Visible = False
Si fin

Ce commentaire a été minimisé par le modérateur sur le site
Salut, j'ai un classeur avec plusieurs onglets nommés liés à une feuille d'index à l'avant. L'utilisateur peut sélectionner les feuilles qu'il souhaite utiliser en cochant une case à côté du nom de la feuille - vide, N/A ou Oui (liste déroulante). Existe-t-il un moyen d'adapter ce code pour que la feuille soit visible si la case à cocher est vide ou contient "Oui" mais pas visible si la case à cocher contient "N/A".
J'ai essayé mais je ne connais pas assez VBA pour le faire fonctionner. Merci
Ce commentaire a été minimisé par le modérateur sur le site
Je cherche à masquer ou à afficher des feuilles en fonction d'une valeur de cellule (Oui/Non). Les valeurs sont dans un tableau (tblFileContents) et la colonne D4:D25 et le nom de la feuille est en A4:A25 sur la feuille . L'ordre des articles peut être modifié. Avez-vous une référence à un exemple qui me permettrait de faire cela?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème et quelqu'un d'autre m'a proposé une solution.
Créez un tableau (format tableau) avec 2 colonnes, nommez la colonne de gauche Feuilles à afficher/masquer, la colonne de droite dépend de vous. Mettez tous les noms de feuilles dans la colonne de gauche
Sélectionnez ensuite Afficher le code pour cet onglet et entrez Dim Changed As Range, c As Range, rMTS As Range
Dim i As Long
Dim bShowAll As Boolean

Set rMTS = Range("TblShowHide[Mark to Show]")
Ensemble modifié = intersection (cible, rMTS)
Si ce n'est pas changé, c'est rien alors
bShowAll = Len(rMTS.Cells(1).Value) > 0
On Error Resume Next
Pour i = 2 Vers rMTS.Rows.Count
Sheets(Range("TblShowHide[Show/Hide Sheets]").Cells(i).Value).Visible = IIf(bShowAll, True, Len(rMTS.Cells(i).Value) > 0)
Suivant i
En cas d'erreur GoTo 0
Si fin
End Sub


Ce commentaire a été minimisé par le modérateur sur le site
Je veux bien essayer. Merci beaucoup!
Ce commentaire a été minimisé par le modérateur sur le site
Je ne sais pas ce que je dois changer, mais cela n'a pas fonctionné pour moi.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Jean,
oui j'ai un exemple que j'ai joint ici. Renommez le fichier en example.xlsm (il n'est pas compressé, mais a dû être renommé pour être téléchargé)
Sur l'onglet du menu, il y a un tableau avec les différents noms d'onglets, faites un x ou tout autre caractère pour afficher l'onglet, si vous supprimez le caractère, l'onglet se cache.
J'espère que cela pourra aider
Ce commentaire a été minimisé par le modérateur sur le site
Celui-ci contient plusieurs éléments mais pas de fichier excel.
Ce commentaire a été minimisé par le modérateur sur le site
Je souhaite avoir un menu/table des matières comme première feuille de calcul et basé sur les réponses Oui/Non - certaines feuilles de calcul apparaissent, c'est-à-dire que plus d'une devient visible.
J'ai du mal à faire apparaître plusieurs feuilles de calcul basées sur le code ci-dessus.
Puis-je utiliser une fonction ET, par exemple Si la cellule X = "Oui", alors rendre la feuille Y visible et la feuille Z et la feuille K ?
Tout conseil grandement apprécié.
Cordialement
Helen
Ce commentaire a été minimisé par le modérateur sur le site
А я вот не могу понять, как такое сделать в гугл таблицах именно?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour ami,

Vous pouvez ouvrir une nouvelle feuille Google, ajouter une nouvelle feuille afin qu'il y ait une "Feuille1" et une "Feuille2" puis aller dans Outils > Éditeur de script. Dans l'éditeur, collez ce qui suit.

function maFonction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var feuille1 = ss.getSheetByName("Feuille1");
var feuille2 = ss.getSheetByName("Feuille2");

var cellule1 = feuille1.getRange('B2');

si (cell1.getValue() == 2) {
feuille2.hideSheet();
}

si (cell1.getValue() == 3) {
feuille2.showSheet();
}
}

Veuillez essayer.

Sincèrement,
Mandy
Ce commentaire a été minimisé par le modérateur sur le site
Ce code fonctionne très bien, mais j'ai 42 variables pour 70 feuilles, donc ce code devient très long et cesse de fonctionner. Existe-t-il un moyen de créer ce code dans des sections afin de ne pas dépasser la taille de code que VBA peut gérer ? Ou dois-je les diviser en deux Excel distincts?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Liz
Désolé, à l'heure actuelle, il n'y a pas de bonne façon de résoudre votre problème.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai une valeur dans la cellule B1 qui, si oui, affiche la feuille1, mais aussi une valeur dans B2, si oui, affiche la feuille2, etc. etc. 10 feuilles différentes ? Merci
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés