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
Cela fonctionne également, Gégé-45550.

Est-ce que je peux me permettre de vous demander une dernière chose.

Si par exemple, j'ajoute une colonne à gauche de "services" intitulé "numéro" cela ne fonctionne plus.
Comment je peux y remédier car mon tableau va certainement évoluer en ajoutant des colonnes.

Merci
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,
Par contre, je souhaite intégrer dans la liste déroulante "Admin" qui aurait les mêmes attributs que "Services"
c'est ce que j'ai écrit :
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 :
VB:
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
[EDIT] En C2, modifiez "Services" par ce que vous voulez, par exemple "Admin" et regardez ce qui se passe.
 

Pièces jointes

Cela fonctionne également, Gégé-45550.

Est-ce que je peux me permettre de vous demander une dernière chose.

Si par exemple, j'ajoute une colonne à gauche de "services" intitulé "numéro" cela ne fonctionne plus.
Comment je peux y remédier car mon tableau va certainement évoluer en ajoutant des colonnes.

Merci
 
Cela fonctionne également, Gégé-45550.

Est-ce que je peux me permettre de vous demander une dernière chose.

Si par exemple, j'ajoute une colonne à gauche de "services" intitulé "numéro" cela ne fonctionne plus.
Comment je peux y remédier car mon tableau va certainement évoluer en ajoutant des colonnes.

Merci
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,
 
.Bonjour à tous,

Pour ne pas avoir à modifier le code si l'on ajoute des colonnes déclarez une variable col et définissez-la :
VB:
col = [Tableau1[Services]].Column - [Tableau1].Column + 1
puis en dessous remplacez Field:=1 par Field:=col

A+
 
Désolé job75,

Mais cela ne fonctionne pas.
Re-bonjour,
mais bien sûr que si, ça marche !
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Filtre$, Colonne%
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [L1]) Is Nothing Then
        Colonne = [Tableau1[Services]].Column - [Tableau1].Column + 1
        ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=Colonne
        Filtre = [L1]
        If Filtre <> "Admin" Then ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=Colonne, Criteria1:=Filtre
    End If
End Sub
C'est une excellente suggestion qu'à faite @job75
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

Retour