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

Fermé
soccas83 Messages postés 2 Date d'inscription lundi 27 février 2023 Statut Membre Dernière intervention 28 février 2023 - 27 févr. 2023 à 21:00
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 1 mars 2023 à 14:06

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 17233 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 janvier 2025 1 712
28 févr. 2023 à 16:25

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 lundi 27 février 2023 Statut Membre Dernière intervention 28 février 2023
28 févr. 2023 à 17:10

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 17233 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 janvier 2025 1 712
28 févr. 2023 à 18:22

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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 753
Modifié le 1 mars 2023 à 14:07

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