XL 2016 Automatiser filtre

mcj1997

XLDnaute Accro
Bonjour,

Je cherche à automatiser la création d'un filtre que je fais dès réception d'un fichier et à chaque fois c'est le même filtre.

Merci d'avance,
 

Pièces jointes

  • Automatiser filtre.xlsx
    8.9 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Mcj,
Un essai en PJ avec :
VB:
Sub Filtrer()
    Range("A1").AutoFilter
    ActiveSheet.Range("$A$1:$A$22").AutoFilter Field:=1, Criteria1:=Array( _
        "Cécile", "Delphine", "Eric", "Jacky", "Jean", "Mathilde"), Operator:= _
        xlFilterValues
End Sub
Sub Défiltrer()
    On Error Resume Next
    ActiveSheet.ShowAllData
End Sub
 

Pièces jointes

  • Automatiser filtre.xlsm
    16.3 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Testez cette version, elle est indépendante de la longueur de la liste, elle en tient compte avec :
VB:
Sub Filtrer()
    Dim Plage
    Application.ScreenUpdating = False
    Plage = "$A$1:$A$" & Range("A65500").End(xlUp).Row
    Range("A1").AutoFilter
    ActiveSheet.Range(Plage).AutoFilter Field:=1, Criteria1:=Array( _
        "Cécile", "Delphine", "Eric", "Jacky", "Jean", "Mathilde"), Operator:= _
        xlFilterValues
End Sub
 

Pièces jointes

  • Automatiser filtre 2.xlsm
    16.9 KB · Affichages: 7

mcj1997

XLDnaute Accro
Bonjour,
Testez cette version, elle est indépendante de la longueur de la liste, elle en tient compte avec :
VB:
Sub Filtrer()
    Dim Plage
    Application.ScreenUpdating = False
    Plage = "$A$1:$A$" & Range("A65500").End(xlUp).Row
    Range("A1").AutoFilter
    ActiveSheet.Range(Plage).AutoFilter Field:=1, Criteria1:=Array( _
        "Cécile", "Delphine", "Eric", "Jacky", "Jean", "Mathilde"), Operator:= _
        xlFilterValues
End Sub
C’est parfait et opérationnel dans mon fichier, toutefois est-ce qu‘il serait possible d’automatiser la somme de colonne d en prenant les lignes Cécile Delphine et Éric et totaliser toujours en colonne d pour les lignes Jacky JEan et Mathilde ? Merci d’avance.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Une autre syntaxe pour filtrer
(au cas où les prénoms changent, il suffit de modifier la constante MesCriteres en conséquence)

VB:
Const MesCriteres As String = "Cécile/Delphine/Eric/Jacky/Jean/Mathilde"
Sub test()
Filtrage Range("A1"), Split(MesCriteres, "/")
End Sub
Private Sub Filtrage(r As Range, ParamArray vCriteres())
r.AutoFilter 1, vCriteres, 7
End Sub
Pour filtrer, c'est la macro test qu'on exécute.
 

mcj1997

XLDnaute Accro
Bonjour le fil

Une autre syntaxe pour filtrer
(au cas où les prénoms changent, il suffit de modifier la constante MesCriteres en conséquence)

VB:
Const MesCriteres As String = "Cécile/Delphine/Eric/Jacky/Jean/Mathilde"
Sub test()
Filtrage Range("A1"), Split(MesCriteres, "/")
End Sub
Private Sub Filtrage(r As Range, ParamArray vCriteres())
r.AutoFilter 1, vCriteres, 7
End Sub
Pour filtrer, c'est la macro test qu'on exécute.
Bonjour,

Votre proposition m’intéresse mais comment l’intégrer dans la macro ?

Merci d’avance
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

On peut faire comme ci-dessous.
Mais utilises plutôt la version de Sylvanu.
Je n'ai posté la mienne simplement pour varier les plaisirs.
(La mienne est plus compliquée à mettre en œuvre selon son niveau de maitrise de VBA)
Filtre.png
 

Discussions similaires