Comment Afficher/Masquer des onglets

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

  • Fiche de Cout Menu - Aout 2017.xlsm
    1.2 MB · Affichages: 90

cp4

XLDnaute Barbatruc
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
 

Eric_Clamart

XLDnaute Nouveau
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
 

cp4

XLDnaute Barbatruc
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
 

Papou-net

XLDnaute Barbatruc
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

  • Copie de Fiche de Cout Menu - Aout 2017-1.xlsm
    1.2 MB · Affichages: 47

Eric_Clamart

XLDnaute Nouveau
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.
 

Eric_Clamart

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 082
Membres
103 113
dernier inscrit
jlaussenac