Appliquer le même filtre à plusieurs feuilles du même classeur

Résolu/Fermé
marylsa Messages postés 5 Date d'inscription samedi 19 janvier 2019 Statut Membre Dernière intervention 21 janvier 2019 - Modifié le 20 janv. 2019 à 00:25
marylsa Messages postés 5 Date d'inscription samedi 19 janvier 2019 Statut Membre Dernière intervention 21 janvier 2019 - 21 janv. 2019 à 01:41
Bonjour,

J'aimerais pouvoir faire un tri sur plusieurs feuilles via une macro. Dans mon fichier joint, je voudrais trier selon le critère de la liste déroulante qui est liée à la case Sommaire!A1. Je voudrais que toutes les feuilles "représentant" soient triées selon le critère choisi et lorsque le critère Tableau est choisi, je voudrais que le tri s'annule.


Voici ce que j'ai trouvé sur le net que j'ai essayé d'adapter à mes besoins mais qui ne fonctionne pas, en fait il y a un tri qui se fait mais c'est les tableaux en entier qui disparaissent:

Sub apply_autofilter_across_worksheets()
Dim xWs As Worksheet
On Error Resume Next
For Each xWs In Worksheets
xWs.Range("c5").AutoFilter 3, "=Sommaire!A1"
If(Sommaire!A1="Tableau";xWs.ShowAllData
Next
End Sub


Voici le lien de mon fichier: https://www.cjoint.com/c/IAtxyjoocgL

Merci de m'aider :-)
A voir également:

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
20 janv. 2019 à 18:13
Bonjour,

Vous semblez confondre FILTRE et TRI
FILTRE: pour ne sélectionner qu'une partie d'un tableau en fonction d'un critère.
TRI: réorganise le contenu d'un tableau.

A la lecture du code fourni, j'en déduis qu'il s'agit bien de filtre.
Sub apply_autofilter_across_worksheets()
    Dim xWs As Worksheet
    Application.ScreenUpdating = False
    On Error Resume Next
    Crit = Sheets("Sommaire").[A1]
    For Each xWs In Worksheets
        If xWs.Name <> "Sommaire" Then
            If Crit = "Tableau" Then
                xWs.ShowAllData
            Else
                If xWs.AutoFilterMode = False Then xWs.AutoFilterMode = True
                xWs.Range("A5:R5").AutoFilter 3, Crit
            End If
        End If
    Next
End Sub


Cdlt
0
marylsa Messages postés 5 Date d'inscription samedi 19 janvier 2019 Statut Membre Dernière intervention 21 janvier 2019
21 janv. 2019 à 01:41
bonjour,

Vous avez raison, j'ai bien confondu filtre et tri.

Je vous remercie, la macro fonctionne à merveille.
0