Macro IF sh codename "Like" pour ne pas voir "Liste" certains onglets

Bonjour,

J'ai un fichier avec beaucoup d'onglet, j'ai réussi à créer cette macro, pour rendre invisible les onglets commençant par (Model j'en ai 5), avec CodeName like"Model"*.

J'ai (6) onglets commençant par "Liste"

For Each sh In ActiveWorkbook.Worksheets
            If sh.CodeName Like "Model*" _
            Or sh.Name = "Param" _
            sh.Visible = xlSheetVeryHidden
        Else
        End If

Ma question : Je souhaiterais aussi (Like les onglets commençant par "Liste".

une idée !

Bonjour

Vous parlez de model puis de liste et votre code mentionne aussi Param

Pas simple de comprendre qui plus est un THEN est manquant dans votre IF

Mettez peut être un image de l'editeur VBA afin de voir le codename des onglets ou un fichier sans données confidentielles

Crdlt

bonjour Dan,

oui j'ai des plusieurs onglets qui se nomme "Model" "Model2".. et d'autre onglets qui se nomme "Liste Facture", Liste Devis"...

Et vous voulez donc cacher les onglets Model et liste ?

Le nom codename est identique au nom des onglets ?

EDIT : Ces questions parce que, par défaut, le codename n'est pas identique au nom des onglets

re dan

Pour le Then c'est les autres onglets qui ont un nom bien spécifique (Sheet Name 'Param', cet onglet c'est bien "Param") bref ceux que je peux (libéllé on va dire), je ne suis pas claire ?

Merci

Re Dan,

Oui, et OUI

Pour le Then c'est les autres onglets qui ont un nom bien spécifique (Sheet Name 'Param', cet onglet c'est bien "Param") bref ceux que je peux (libéllé on va dire), je ne suis pas claire ?

Heu pas trop non. Soit vous cachez les onglets sur base du nom de l'onglet soit sur base du codename. Par défaut le codename n'est jamais identique au nom de l'onglet.

Essayez ceci sur base du Codename

Dim sh
For Each sh In ThisWorkbook.Worksheets
    If sh.CodeName Like "Model*" Or sh.CodeName Like "Liste*" Then
        sh.Visible = xlSheetVeryHidden
    End If
Next sh

Si cela ne fonctionne pas, comme demandé postez une image reprenant la fenetre VBA Project de l'éditeur VBA.

Re Dan,

Maintenant il faut refaire un IF pour les autres onglets ?

'Modification ne pas voir les onglets Marie le 25/03/2021
    Dim i&, sh As Worksheet, rep$
    Application.ScreenUpdating = 0
    For Each sh In ActiveWorkbook.Worksheets
            If sh.CodeName Like "Model*" Or sh.CodeName Like "Liste*" Then 'Dan
                sh.Visible = xlSheetVeryHidden
            End If
    ' Re Dan il faut refaire un IF pour mes autres onglets
            Or sh.Name = "Param" _
            Or sh.Name = "Env" Or sh.Name = "Ville Cptt" _
            Or sh.Name = "RC" Or sh.Name = "Rel1" Or sh.Name = "Rel2" Or sh.Name = "MD" _
            Or sh.Name = "MemRel" Or sh.Name = "FClts" Or sh.Name = "FFnrs" _
            sh.Visible = xlSheetVeryHidden
        Else
            sh.Visible = 1
        End If
    Next sh
    Application.ScreenUpdating = 1
End Sub

Voilà ma macro,

On tourne en rond là...

En supposant que "Model" et "liste" sont le nom des onglets :

Dim sh As Worksheet
Application.ScreenUpdating = 0
For Each sh In ThisWorkbook.Worksheets
    If sh.Name Like "Model*" _
        Or sh.Name Like "Liste*" _
        Or sh.Name = "Param" _
        Or sh.Name = "Env" _
        Or sh.Name = "Ville Cptt" _
        Or sh.Name = "RC" _
        Or sh.Name = "Rel1" _
        Or sh.Name = "Rel2" _
        Or sh.Name = "MD" _
        Or sh.Name = "MemRel" _
        Or sh.Name = "FClts" _
        Or sh.Name = "FFnrs" Then
        sh.Visible = xlSheetVeryHidden
    Else
        sh.Visible = 1
    End If
Next sh
Application.ScreenUpdating = 1
End Sub

Dim i et Rep ne servent pas dans votre code

Re Dan,

Merci beaucoup, Marie

Rechercher des sujets similaires à "macro codename like pas voir liste certains onglets"