Comment Afficher/Masquer des onglets

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Eric_Clamart

XLDnaute Nouveau
Bonsoir
j'ai une feuille excel pour passer des commandes. Il y a une liste déroulante pour choisir le fournisseur. En cliquant sur son nom l'onglet devient visible et je peux passer la commande.
il y aussi un bouton pour ajouter des nouveaux fournisseurs. Jusque la ca marche.
Maintenant, j'aimerai pouvoir masquer/rendre visible tous les onglets d'un coup. J'ai créé un array avec les noms des fournisseurs mais j'aimerai, quand j'ajoute un fournisseur qu'il vienne s'ajouter dans cet aaray automatiquement et la ca bloque...
quelqu'un pourait m'aider ?
En vous remerciant
ci joint ma feuille.
Merci
 

Pièces jointes

Bonjour,

Un essai à tester
VB:
Private Sub CheckBox35_Click()
    Dim ws As Worksheet
    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Menu" Then
            ws.Visible = Not CheckBox35.Value = False
        End If
    Next
    Application.ScreenUpdating = False
End Sub
 
Bonsoir
Merci, j'ai bien pensé a faire cela mais il y une partie des d'onglet que je ne veux pas voir. j'aimerai pouvoir afficher et masquer seulement mes fournisseurs. J'ai crée une liste dynamique "Liste_Fournisseur" qui se trouve sur ma feuille data et c'est seulement les noms qui se trouve sur cette liste que j'aimerai afficher/masquer .
Si vous avez une idée
Merci
 
Bonjour,

un autre essai, les onglets dont le nom figure dans liste_fournisseur se masquent et s'affichent suivant checkbox.
VB:
Private Sub CheckBox35_Click()
    Dim ws As Worksheet, Liste_Fournisseur As Range
    With Feuil40
        dl = .Range("A" & Rows.Count).End(xlUp).Row
        Set Liste_Fournisseur = .Range("A2:A" & dl)
    End With
    Application.ScreenUpdating = False
    For Each c In Liste_Fournisseur.Cells
        For Each ws In ThisWorkbook.Worksheets
            If c.Value = ws.Name Then
                ws.Visible = Not CheckBox35.Value = False
                Exit For
                Exit For
            End If
        Next
    Next
    Application.ScreenUpdating = False
End Sub
 
Bonjour Eric, cp4, le Forum,

Une autre solution basée sur le contenu des feuilles.

Pour les fournisseurs, le code recherche si "BON DE COMMANDE" figure dans la première ligne. J'ai utilisé la fonction Find car la structure des feuilles n'est pas identique, Dans le cas contraire, on pourrait tester si le texte apparaît dans la même cellule (cf feuilles de plats)

Pour les plats, on teste si "Fournisseur" est inscrit en B10.

Cette astuce ne fonctionne bien que si ces deux critères ne figurent pas en même place sur d'autres feuilles.

Enfin, j'ai préféré attacher le code à l'événement Change qui se produit avant l'événement Click.

Espérant avoir été utile.

Cordialement.

PS: en cas de rajout de fournisseur ou de plat, pas de code à modifier.
 

Pièces jointes

Bonjour Eric, cp4, le Forum,

Une autre solution basée sur le contenu des feuilles.

Pour les fournisseurs, le code recherche si "BON DE COMMANDE" figure dans la première ligne. J'ai utilisé la fonction Find car la structure des feuilles n'est pas identique, Dans le cas contraire, on pourrait tester si le texte apparaît dans la même cellule (cf feuilles de plats)

Pour les plats, on teste si "Fournisseur" est inscrit en B10.

Cette astuce ne fonctionne bien que si ces deux critères ne figurent pas en même place sur d'autres feuilles.

Enfin, j'ai préféré attacher le code à l'événement Change qui se produit avant l'événement Click.

Espérant avoir été utile.

Cordialement.

PS: en cas de rajout de fournisseur ou de plat, pas de code à modifier.
 
Bonjour Messieurs
Les deux méthodes marchent à merveille.
Je vous remercie.
Je cherche maintenant à aller plus loin et de pouvoir annuler un fournisseur. Ce qui devrait m'effacer l'onglet de ce fournisseur, ajuster la liste des fournisseurs sur la feuille data en colonne A et supprimer la cellule vide afin de ne pas avoir de blanc ainsi que sur la feuille Recap Inventaire colonne A.
Si vous avez des idées pour cela je suis aussi preneur.
en vous remerciant
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour