Filtre automatique

Bonjour,

Je voudrais, lors de l'ouverture d'un classeur excel, vérifier :

1 - qu'il n'y a pas de filtres activés et si certains sont activés retirer cette activation.

2 - si les filtres ont été retirés, les remettre en place.

En ce qui concerne le 1, je n'ai pas de soucis. Par contre pour le 2, une fois les filtres sont mis et une fois ils sont retirés, cela dépend, évidemment, de l'état à la fermeture du classeur

Private Sub Workbook_Activate()
        Worksheets("Liste CLients").Select
'Retire tous les filtres actifs en cours
     On Error Resume Next
        ActiveSheet.ShowAllData
    On Error GoTo 0
'Mise en place des filtres A5:M5
       If Not ActiveSheet.AutoFilterMode Then
        Range("A5:M5").AutoFilter
        End If
    Range("A6").Select
End Sub

Lorsque je fais du pas à pas, systématiquement je me retrouve à la ligne : Range("A5:M5").AutoFilter. Donc un coup je mets les filtres et un coup je les enlève.

Où ai-je fais une erreur?

Merci d'avance

Bonjour

Private Sub Workbook_Activate()
Sheets("Liste Clients").Select
If ActiveSheet.AutoFilterMode Then Selection.AutoFilter
 If Not ActiveSheet.AutoFilterMode Then Range("A5:M5").AutoFilter
Range("A6").Select
End Sub

Cordialement

Bonjour,

Merci pour la réponse, mais cela ne fonctionne pas.

Je viens de comprendre le problème (enfin je pense), mais je n'arrive pas à le résoudre pour autant. Je vais essayer de faire simple :

Je n'ai plus d'action sur les cellules A5-M5 mis à part afficher ou retirer les filtres. A partir de la cellule M6 plus de problème.

J'ai inséré une ligne mais je n'arrive pas à supprimer la ligne 5 tout comme les cellules de A5 à M5.

Petite précision : lorsque j'efface le contenu d'une ou plusieurs cellule de A5 à M5, il y a d'affiché à la place "colonne 1", "colonne 2",.....

Ma feuille n'est pas protégée.

A noter que si je teste en mettant des filtres sur une autre ligne, tout fonctionne bien. Le problème vient donc des cellules A5 à M5 qui me semblent en parti verrouillé. Comment les déverrouiller?

Rebonjour,

J'ai enfin résolu mon problème.

J'étais dans un format tableau avec une ligne d'en tête pour les cellules A5 - M5. J'ai transformé le tableau en plage de cellule et maintenant la procédure que j'avais écrite fonctionne très bien.

'Mise en place des filtres A5:M5
       If Not ActiveSheet.AutoFilterMode Then
       Range("A5:M5").AutoFilter
       End If

Je me demande tout de même pourquoi cela ne fonctionne pas dans le format tableau. Ou alors faut-il écrire une procédure différente!!!

Rechercher des sujets similaires à "filtre automatique"