Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Afficher/masquer des lignes en fonction d'un critère

  • Initiateur de la discussion Initiateur de la discussion telemarrk
  • Date de début Date de début

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 !

telemarrk

XLDnaute Occasionnel
Bonjour,

Je souhaite afficher/masquer des lignes en fonction du choix fait en L1.

Exemple : si je choisis "Vente" en L1 je veux voir dans mon tableau que les ventes

Peut-on également lorsque l'on quitte le fichier que tous soient affichés ?

Merci
 

Pièces jointes

Solution
Alors, toutes les questions d'un coup, c'est mieux ! 😉
Dans la ligne
VB:
If Filtre <> "admin" Then ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:=Filtre
le Field représente le N° de la colonne à filtrer.
Si vous ajoutez une colonne à gauche, la colonne à filtrer devient la deuxième colonne.
Il faut alors modifier Field:=1 en Field:=2, etc.
Cordialement,
Bjr telemarrk

Ce n'est pas déjà ce vous avez demandé ici :

Cordialement, Gérard
 
Bonjour Natorp

Non, j'ai repris le même tableau.
La je ne veux pas filtrer sur un second tableau je veux juste savoir si l'on peut à l'aide d'un code VBA ou autre afficher et masque des lignes en fonction d'un critère.

Merci
 
Gégé-45550,

Peut-on faire une dernière modification à ton fichier joint.
Je viens de m'apercevoir que lorsque l'on quitte il affiche la totalité du tableau en proposant d'enregistrer.
Je voudrais que si le dernier choix est par exemple "Vente" il reste sur vente.

Une dernière chose également, je compte adapter le code vba sur un autre fichier excel, peut-on remplacer "services" par "admin" sans souci.


Merci
 
re-Bonjour,
l'affichage complet correspond à la demande initiale :
Peut-on également lorsque l'on quitte le fichier que tous soient affichés ?
Pour supprimer cette action, il suffit d'effacer la procédure suivante dans ThisWorkbook :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1
End Sub
Pour la deuxième demande, pour que le code prenne en compte n'importe quel intitulé à la place de "Services", modifiez la procédure comme suit :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Filtre$
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [L1]) Is Nothing Then
        ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1
        Filtre = [L1]
        If Filtre <> ActiveSheet.ListObjects("Tableau1").HeaderRowRange(1) Then ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:=Filtre
    End If
End Sub
Cordialement,
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…