Masquer/Afficher une feuille en fonction de la valeur d'une cellule

  • Initiateur de la discussion Initiateur de la discussion RedSky74
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

RedSky74

Guest
Bonjour,

Je souhaiterai faire un code VBA pour pouvoir afficher ou non des feuilles en fonction de la valeur dans une cellule.

Merci d'avance!
 
Re : Masquer/Afficher une feuille en fonction de la valeur d'une cellule

Bonjour RedSky74,

Une possibilité, mais sans voir l'exemple ce n'est peut-être pas adapté:

Code:
Option Explicit
Option Base 1
Option Compare Text


Dim Wk As Workbook
Dim maCel As Range
Dim i As Integer
Dim Valo As String


Sub Cacher()

    Set Wk = ThisWorkbook
    
    'Cellule où contient la valeur
    Set maCel = Range("A1")
    'Valeur pour laquelle la feuille doit être cachée
    Valo = "Toto"
    
    On Error Resume Next
    For i = 1 To Wk.Sheets.Count
        
        If Wk.Sheets(i).Range(maCel.Address).Value = Valo Then Wk.Sheets(i).Visible = False
    
    Next i

End Sub

A insérer dans un module, Alt +F11 Insérer ==> Module

Attention, une feuille au minimum doit être visible dans le classeur. Si toutes les feuilles contiennent la valeur qui doit les occulter, la dernière feuille restera visible quand même.


N'hésite pas si tu as des questions !
Bonne journée !
 
Re : Masquer/Afficher une feuille en fonction de la valeur d'une cellule

Je n'arrive pas a l'appliquer a mon cas.

Je veux qu'en fonction de la case g3 de la feuille OKD collage, j'affiche la bonne feuille: Suivi de production ( la M AM ou N).

Je t'envoie le fichier
 

Pièces jointes

Re : Masquer/Afficher une feuille en fonction de la valeur d'une cellule

Super! Merci beaucoup!
Une petite amélioration peut être, si je ne selectionne ni M AM ou N, je veux qu'aucune feuille suivi de prod ne soit visible.
Comment je fais?

Cordialement,
 
Re : Masquer/Afficher une feuille en fonction de la valeur d'une cellule

Re RedSky74,

Pas de soucis ! 🙂
Pour ton amélioration, il suffit de rajouter une condition au code:

Code:
Private Sub Worksheet_Calculate()
    
    Application.ScreenUpdating = False
    
        On Error GoTo Fin
        For i = 1 To Sheets.Count
            
            If Sheets(i).Name Like "Relevé de production" & "*" Then Sheets(i).Visible = False
            If Range("G3").Value <> "" Then If Sheets(i).Name Like "* " & Range("G3").Value Then Sheets(i).Visible = True
        
        Next i
    
Fin:
Application.ScreenUpdating = True

End Sub

Bonne soirée !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
258
Réponses
5
Affichages
247
Réponses
5
Affichages
153
Réponses
10
Affichages
412
Retour