Macro sur toutes feuilles avec exception

Bonjour,

Je travaille actuellement sur un fichier Excel composé d'une vingtaine de feuille dont l'une est cachée : propriété veryhidden en VBA.

Un bouton de mon classeur me permet d'"afficher toutes les feuilles du simulateur" : Bouton_etat_initial

J'aimerai toutefois que la dernière feuille de mon simulateur "tarif-21" ne s'affiche pas en cliquant sur ce bouton.

Voici ma formule de base ↓

Sub Bouton_etat_initial()

'Réaffichage de toutes les feuilles du classeur

        Sheets("feuille-1").Unprotect
        (...)
        Sheets("feuille-21").Unprotect

            Dim Onglets As Worksheet

            For Each Onglets In Worksheets
            Onglets.Visible = True
            Next Onglets

Réaffichage de toutes les colonnes qui ont été masquées

            Sheets("tarif-1").Select
            Columns("G:V").Select
            Selection.EntireColumn.Hidden = False

            Sheets("tarif-2").Select
            Columns("F:Z").Select
            Selection.EntireColumn.Hidden = False

            Sheets("tarif-3").Select
            Columns("F:Z").Select
            Selection.EntireColumn.Hidden = False

            Sheets("Accueil").Select
            Range("A1").Select

        Sheets("feuille-1").Protect
        (...)
        Sheets("feuille-21").Protect

End Sub

J'ai pensé modifié le code Dim. Onglets As Worksheet (...) Next Onglets par ↓

Dim Sht As Worksheet

            For Each Sht In Worksheets
            If Not Sht.Name = "tarif-21" Then
            Sht.Visible = True

Le code ne semble pas marcher. Pourriez-vous m'aider ?

Je m'excuse d'avance pour le code assez long, j'ai essayé de réduire au maximum pour laisser les infos pertinentes.

Merci,

Bonjour,

Pour masquer la dernière feuille, je suggère :

Dim Sht As Worksheet

            For Each Sht In Worksheets
            If  Sht.Name = "tarif-21" Then
            Sht.Visible = False
            

Bonjour et bienvenue sur le forum

Bonjour à tous

Le code ne semble pas marcher.

Essaie ça :
Sub Bouton_etat_initial()

    For Each f In Worksheets
        If f.Name <> "tarif-21" Then
            f.Visible = True
            f.Unprotect
            ...
            ...
            ...
        End If
    Next f

End Sub

Bye !

Bonjour,

J'ai essayé avec le code d'Oxydum, cependant la formule bugue pour réafficher les colonnes qui ont été masquées par la précédente macro.

GMB, je n'ai pas très bien compris ton code. A quoi correspond les "f" ? Egalement, pourquoi avoir placé des "f.unprotect"?

Merci pour votre aide,

A quoi correspond les "f" ?

f est une variable qui représente les feuilles du classeur

J'ai l'habitude de déclarer mes variables en tout début de macro :

Option Explicit

Dim f As Worksheet

Sub Bouton_etat_initial()

    For Each f In Worksheets
    '...
    '...

End Sub

OK ?

Bye !

Rechercher des sujets similaires à "macro toutes feuilles exception"