Problème filtre automatique

Bonjour,

J'ai dans un fichier Excel, plusieurs macros qui importent les données de différents fichiers vers mon fichier, ensuite, font des filtres en fonction de l'année en cours et du dernier mois précédent et d'autres conditions ! On vient de me demander aujourd'hui de changer la manière de faire les filtres ! C'est à dire que chaque fois qu'il y a un filtre à faire sur la date et le mois, que l'utilisateur ait le choix entre l'année passée et cette année et est le choix du premier mois à partir duquel commencer le filtre et le dernier mois à partir duquel arrêter le filtre !

Je me demande s'il n'y a pas un moyen de faire ça sans pour autant recommencer tout mon travail vu que j'en ai peut être fait des dizaines de filtres comme ça !

Sub Import_réseauencours()

'j'ai créé une fonction qui m'importe les données d'un autre fichier que j'utilise ici
Set dfdsfsfg = Import_fichiers("C:\Export Données\réseau en cours.xls", "en cours liste complète réseau", "réseau en cours")

Dim WsSOurce As Worksheet, filtre As Workbook, WsCible As Worksheet
Dim Deb As String, Fin As String
Set WsSOurce = ThisWorkbook.Sheets("en cours liste complète réseau")
On Error Resume Next: WsSOurce.ShowAllData: On Error GoTo 0
Application.ScreenUpdating = False
Set WsCible = ThisWorkbook.Sheets.Add(After:=WsSOurce)

    Application.DisplayAlerts = False
    If FeuilleExiste("réseau en cours tarifé " & Year(Date)) Then
        Sheets("réseau en cours tarifé " & Year(Date)).Delete
        Application.DisplayAlerts = True
        'MsgBox ("La feuille existe déjà ! Vous ne pouvez pas créer deux fois la même feuille ! Veuillez supprimer l'existante d'abord")
    End If

        WsCible.Name = "réseau en cours tarifé " & Year(Date)
'le filtre se fait entre le 31/12/2014 et le 07/08/2015 ici
        Deb = ">" & Year(Date) - 1 & "/12/31"
        Fin = "<" & Format(Date, "yyyy/mm/01")
        Set filtre = Workbooks.Add
        filtre.Sheets(1).Range("A1") = "Code_Delegation"
        filtre.Sheets(1).Range("B1") = "Date_1ereTarification"
        filtre.Sheets(1).Range("C1") = "Date_1ereTarification"

        filtre.Sheets(1).Range("A2") = "<>DGEN*"
        filtre.Sheets(1).Range("B2") = Deb
        filtre.Sheets(1).Range("C2") = Fin
'j'ai une fonction filtreactif qui me copie les données du filtre dans une autre feuille
        FiltreActif WsSOurce.UsedRange, filtre.Sheets(1).UsedRange, WsCible.Range("A1")
        filtre.Close False
        Set filtre = Nothing
        Application.ScreenUpdating = True

End Sub

merci d'avance pour votre aide

Bonjour,

Si tu veux mon avis, l'utilisateur a tout à fait le droit de refiltrer à sa convenance. N'étant pas (sauf cas particulier) dépourvu de main munie elle-même de doigts, il peut réaliser ses voeux en 2 clics. L'usage manuel du filtre automatique étant infiniment plus rapide que son utilisation programmée, il en sera plus vite satisfait que s'il avait à choisir l'une ou l'autre option dans le déroulement d'un programme...

Cordialement

Ferrand

MFerrand a écrit :

Si tu veux mon avis, l'utilisateur a tout à fait le droit de refiltrer à sa convenance. N'étant pas (sauf cas particulier) dépourvu de main munie elle-même de doigts, il peut réaliser ses voeux en 2 clics. L'usage manuel du filtre automatique étant infiniment plus rapide que son utilisation programmée, il en sera plus vite satisfait que s'il avait à choisir l'une ou l'autre option dans le déroulement d'un programme...

Bonjour,

Merci de me répondre ! Mon idée (je ne sais pas si c'est possible) est de créer deux combobox, une dans laquelle l'utilisateur sélectionnera la date de début et la deuxième dans laquelle il sélectionnera la date de fin du filtre ensuite je n'aurai qu'à récupérer ces dates dans mes variables pour le filtre sans grande modification de mon code (je ne veux vraiment pas le modifier)!

Cette approche est elle correcte ?

Bien sûr !

Il ne s'agit pas d'une modification importante, mais d'un réglage alternatif...

Mon propos n'était pas au niveau de la programmation. Il est normal que tu fournisses un document à des collaborateurs selon des normes prédéfinies. A ce titre, mettre en place un filtre automatique, avec un filtrage initial convenu, qui garantit que tous aient le même document avec mise en évidence des mêmes éléments, tout à fait normal aussi. Au-delà, à chacun d'utiliser l'outil ! Et ce n'est pas parce que tu peux compliquer à loisir ton programme et offrir une masse d'options personnalisées qu'il convient de le faire. Ce pourrait même être contraire à une politique rationnelle d'entreprise...

Cordialement

MFerrand a écrit :

Bien sûr !

Il ne s'agit pas d'une modification importante, mais d'un réglage alternatif...

Mon propos n'était pas au niveau de la programmation. Il est normal que tu fournisses un document à des collaborateurs selon des normes prédéfinies. A ce titre, mettre en place un filtre automatique, avec un filtrage initial convenu, qui garantit que tous aient le même document avec mise en évidence des mêmes éléments, tout à fait normal aussi. Au-delà, à chacun d'utiliser l'outil ! Et ce n'est pas parce que tu peux compliquer à loisir ton programme et offrir une masse d'options personnalisées qu'il convient de le faire. Ce pourrait même être contraire à une politique rationnelle d'entreprise...

Cordialement

OK ! je vous remercie pour vos réponses ! Je tacherai à l'avenir de penser aux réglages alternatifs, ça augmente en effet les possibilités de l'utilisateur en effet et donne un vrai sens à l'automatisation !

Rechercher des sujets similaires à "probleme filtre automatique"