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

RedSky74

XLDnaute Nouveau
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!
 

VDAVID

XLDnaute Impliqué
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 !
 

RedSky74

XLDnaute Nouveau
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

  • Modèle_Collage .xlsm
    61.5 KB · Affichages: 15
  • Modèle_Collage .xlsm
    61.5 KB · Affichages: 17
  • Modèle_Collage .xlsm
    61.5 KB · Affichages: 17

RedSky74

XLDnaute Nouveau
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,
 

VDAVID

XLDnaute Impliqué
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 !
 

Discussions similaires

Réponses
6
Affichages
157

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 452
dernier inscrit
hamzamounir