Masquer des onglets

Bonjour à toutes et tous,

Excel 2016. J'ai un classeur qui contient plusieurs feuilles.

Chaque feuille est (re-)nommée via une macro en fonction d'une valeur de cellule de la feuille. Cette valeur change en fonction de l'activité dans le fichier.

Je souhaite introduire une autre macro qui, via deux boutons, masque et démasque automatiquement toutes les feuilles (sauf une).

J'ai fait une macro enregistrée très simple et cela fonctionne très bien … tant que le nom de la feuille ne change pas, sinon, plus rien.

C'est assez logique comme fonctionnement mais comment faire dans ce cas avec des noms qui changent …

Grand merci pour vos réponses. Belle journée.

Bonjour,

Merci de transmettre le code de votre macro actuelle ainsi que le nom et/ou position de l'onglet à ne pas masquer.

Bonjour,

Merci de transmettre le code de votre macro actuelle ainsi que le nom et/ou position de l'onglet à ne pas masquer.

Voici le code de la macro qui masque. Elle contient 3 noms de feuilles qui changent automatiquement.

Sub Masqueronglets()

Voici le code de la macro qui change le nom de la feuille automatiquement en fonction de la valeur C5 de chaque feuille.

[b]Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Me.Name = Me.Range("c5").Value

End Sub

[/b]

Je souhaite introduire une autre macro qui, via deux boutons, masque et démasque automatiquement toutes les feuilles (sauf une).

Merci de transmettre le code de votre macro actuelle ainsi que le nom et/ou position de l'onglet à ne pas masquer.

Vous n'avez pas répondu à cette question. Si l'onglet à conserver visible n'est pas déterminé par son nom ou sa position, sur quel(s) élément(s) doit on se baser ?

Le code serait quelque chose du genre :

Sub MasquerOnglets()

For Each Feuille In ThisWorkbook.Worksheets 'Boucle sur les feuille
    If Not Feuille.Name = "Feuille visible" Then Feuille.Visible = False 'Masque si pas de correspondance du nom
Next Feuille

End Sub

Je souhaite introduire une autre macro qui, via deux boutons, masque et démasque automatiquement toutes les feuilles (sauf une).

Merci de transmettre le code de votre macro actuelle ainsi que le nom et/ou position de l'onglet à ne pas masquer.

Vous n'avez pas répondu à cette question. Si l'onglet à conserver visible n'est pas déterminé par son nom ou sa position, sur quel(s) élément(s) doit on se baser ?

Il s'appelle "Instruction". Il doit toujours rester visible et ne contient aucune macro.

Ok, il vous suffit simplement de remplacer "Feuille visible" dans le code proposé par "Instruction".

Ok, il vous suffit simplement de remplacer "Feuille visible" dans le code proposé par "Instruction".

J'essaye, merci.

Pourriez-vous me donner le code pour une macro inverse ? Qui affiche tous les onglets.

Pourriez-vous me donner le code pour une macro inverse ? Qui affiche tous les onglets.

Il faux remplacer False par True (Visible = Faux par Visible = Vrai). Je pense même que tu peux remplacer les 3 lignes de codes directement par :

ThisWorkbook.Worksheets.Visible = True

Puisque dans ce cas, on ne se préoccupe pas de la feuille "Instruction", qui est toujours visible.

Bonjour

il faut jouer avec les CodeName

A voir

Sub MasquerOnglets()
Dim Feuil As Object
    For Each Feuil In ThisWorkbook.Sheets
        With Feuil
            Select Case .Name
                Case Feuil1.Name '= CodeName.Name
                    .Visible = -1
                Case Else
                    .Visible = 2
            End Select
        End With
    Next Feuil
Application.Goto [A1], True
End Sub

Sub DecacheOnglets()
Dim Feuil As Object
    For Each Feuil In ThisWorkbook.Sheets
        With Feuil
            .Visible = -1
        End With
    Next Feuil
Application.Goto [A1], True
End Sub

A+

Maurice

Merci à tous !

Plus particulièrement à Pedro22; ça fonctionne très bien.

Merci à tous !

Plus particulièrement à Pedro22; ça fonctionne très bien.

Merci de ton retour et bonne continuation !

Tant qu'à faire, j'ai une autre question mais elle est hors sujet …

J'exécute une requête dans Access et j'ai créé une macro enregistrée dans Excel qui va simplement copier les résultats de la requête et les colle dans un onglet Excel.

Ça marche bien mais quand je change les paramètres de ma requête, la macro ne suit pas et ne va donc pas chercher les nouvelles informations mais les anciennes.

Tu aurais une idée ?

Rechercher des sujets similaires à "masquer onglets"