Supprimer tous les filtres d'un fichier, sauf le filtre d'une colonne

Bonjour, je cherche à supprimer tous les filtres d'une feuille Excel, sauf le filtre d'une colonne qui doit absolument rester actif dans ma feuille.

Je connais la fonction "ShowAllData" dans VBA qui permet de supprimer tous les filtres d'un fichier mais je ne sais pas si il est possible de garder un filtre actif.

Pourriez vous m'aider?

Merci

Bonjour,
Peux-tu joindre un petit fichier ?
Les syntaxes sont différentes si on travaille avec une plage de données ou un tableau structuré.
Cdlt.

Bonjour,

Non désolé je ne peux pas mettre le tableau mais il s’agit d’un tableau structuré.

Merci

Re,
A tester et à adapter.
Cdlt.

Sub CleanFilters()
Dim lo As ListObject, Cell As Range, lCol As Long
    Set lo = Range("nomTable").ListObject
    For lCol = 1 To lo.ListColumns.Count
        If lCol <> 5 Then
            If lo.AutoFilter.Filters(lCol).On Then
                lo.Range.AutoFilter Field:=lCol
            End If
        End If
    Next
End Sub

Bonjour,

Je viens d'effectuer le programme en créant mon tableau.

Quand j'effectue le programme, il annule simplement tous les filtres de mon tableau et m'indique ce message :

image

Auriez-vous une idée de la marche à suivre ?

Cordialement

Re,
Un exemple crée pour une bonne cause.
Cdlt.

21loic-lamps.xlsm (18.00 Ko)

Merci beaucoup pour votre aide, cela fonctionne dans mon tableau.

Cependant, je n'ai pas bien saisi dans la construction du code ce que signifie le Filed :=lcol

Pourriez vous m'éclairer sur ce sujet ?

Merci beaucoup

oups, erreur

Bonjour,
lCol est le numéro de colonne !
Cdlt.

Field sert donc ici à donner un numéro de colonne à notre variable ?

Re,
Des explications !?
A te relire.
Cdlt.

Sub CleanFilters()
'Déclaration des variables
Dim lo As ListObject, Cell As Range, lCol As Long
    'Initialisation des variables
    Set lo = Range("nomTable").ListObject
    'Boucle : pour chaque colonne dans la ligne d'en-têtes du tableau
    For lCol = 1 To lo.ListColumns.Count
        'Si le numéro de colonne est différent de 5
        If lCol <> 5 Then
            'Si la colonne est filtée
            If lo.AutoFilter.Filters(lCol).On Then
                'Suppression du filtre
                lo.Range.AutoFilter Field:=lCol
            End If
        End If
    'Prochaine colonne
    Next
End Sub

Merci beaucoup pour votre aide !

Rechercher des sujets similaires à "supprimer tous filtres fichier sauf filtre colonne"