Masquer les feuilles d'un classeur Excel sauf la 1ère en VBA

soccas83 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour à tous,

Tout d'abord, un grand merci pour votre aide.

Je souhaite masquer toutes les feuilles de mon classeur sauf la 1ère à l'aide d'un bouton de contrôle mais je n'arrive pas à le faire. Je suis donc parti sur le code suivant qui indique de fermer toutes les feuilles qui commence par "Nom" mais du coup, il me réouvre 3 autres feuilles que j'avais masqué et qui ne contient pas "Nom" sur l'onglet.

Comment ajouter à ce code, lui dire qu'il ne réouvre pas les feuilles déjà masquées? 

Code:

Sub Masquer()

Application.ScreenUpdating = False

Dim sh As Worksheet
    For Each sh In Worksheets
        sh.Visible = InStr(sh.Name, "Nom") = 0
               
    Next sh
End Sub

A voir également:

4 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Bonjour,

Masque que les feuilles dont le nom commence par Nom

Sub Masquer()
    Application.ScreenUpdating = False
    
    Dim sh As Worksheet
    For Each sh In Worksheets
        If sh.Name Like "Nom*" Then
            sh.Visible = False
        End If
    Next sh
    Application.ScreenUpdating = True
End Sub
1
soccas83 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

Merci mais c'est le même code que j'ai écrit..

Je souhaiterais ajouter une autre ligne de code qui me permetttrait de lui dire, que les feuilles qui sont déjà masquées, il les laisse masquées.

Peut être avec une condition If...

Mais je ne sais pas l'écrire.

Merci pour votre aide

0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 

Re,

Merci mais c'est le même code que j'ai écrit..

Non pas du tout, votre code teste "Nom", si oui masque, si non affiche

"mon code": si "nom*" masque, c'est tout, y a pas de lignes pour afficher quoi que ce soit

0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 

Bonjour,

Teste si ta feuille est affichée ou non :

​
Sub Masquer()
Application.ScreenUpdating = False
Dim sh As Worksheet
    For Each sh In Worksheets
        If sh.Visible Then
            sh.Visible = InStr(sh.Name, "Nom") = 0
        End If
    Next sh
End Sub

​

0