XL 2010 Filtre avancé réactualisable

  • Initiateur de la discussion Initiateur de la discussion Sissou71
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sissou71

XLDnaute Occasionnel
Bonjour,

J'ai fait un filtre élaboré selon un critère qui peut être modifié par des utilisateurs. Or le filtre ne se met pas à jour lorsque l'on change la donnée d'un critère.

Je vous ai mis un fichier exemple (l'original étant confidentiel j'ai fait light dans ce fichier)
Si quelqu'un sait comment je peux faire en sorte que le tableau s'actualise en fonction du critère (colonne) choisi.
Merci à vous
Cécile
 

Pièces jointes

Salut,

Le filtre élaboré doit être refait à chaque fois que tu changes les critères et/ou les données.
Dans le code vba de la feuille "Filtre", tu peux rajouter le code suivant :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Sheets("Produits").Range("T_Cal[#All]").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("I1:I2"), CopyToRange:=Range("A3:B3"), Unique:=True
End Sub
Ce second code permet de mettre à jour le filtre quand tu actives la feuille (il s'agit du même code dans une autre procédure événementielle):
VB:
Private Sub Worksheet_Activate()
    Sheets("Produits").Range("T_Cal[#All]").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("I1:I2"), CopyToRange:=Range("A3:B3"), Unique:=True
End Sub
 
Bonjour à tous

Sur changement de la saison en B2
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
    Sheets("Produits").Range("T_Cal[#All]").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("I1:I2"), CopyToRange:=Range("A3:B3"), Unique:=False
End Sub
 

Pièces jointes

Bonjour Sissou71, Nairolf, chris,

Une syntaxe voisine :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B1]) Is Nothing Then _
[T_Cal[#All]].AdvancedFilter xlFilterCopy, [I1:I2], [A3:B3], True: [B1].Select
End Sub
A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
199
Réponses
16
Affichages
913
Réponses
2
Affichages
953
Retour