déclenchement d'une macro si application d'un filtre

  • Initiateur de la discussion Initiateur de la discussion Vilain
  • 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 !

Vilain

XLDnaute Accro
Bonjour à tous,

J'ai un onglet sur lequel un filtre est appliqué. Je souhaite lancer une macro (en fait simplement afficher une msgbox) dès que le filtre change. Je ne parviens pas à trouver la bonne rédaction.

Merci d'avance.

A plus
 
Re : déclenchement d'une macro si application d'un filtre

Bonjour

Sauf erreur de ma part, aucun événement n'est lié aux filtres.

Donc en rusant, on doit pouvoir utiliser le changement de valeur d'une cellule contenant une fonction SOUS.TOTAL basée sur la liste filtrée.
 
Re : déclenchement d'une macro si application d'un filtre

Re,

Je ne parviens pas à ce que je veux.
Voila ma macro :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$BJ$1")) Is Nothing Then
MsgBox "La cellule A1 a été modifiée !"
End If
End Sub

et voila ma formule en BJ1 :
=SOUS.TOTAL(3;AO2:AO1849)

En cas de changement de valeur, rien ne se produit, c'est sulement quand je changfe la formule que le message apparaît.
Quelles modifications faut-il que je fasse ?

Merci d'avance

A plus
 
Dernière édition:
Re : déclenchement d'une macro si application d'un filtre

Bonjour,

Un évènement change ne se produit que sur saisie, pas si une formule est réévaluée.

Quel type de filtre appliques-tu ?
Tu pourrais éventuellement le remplacer (en fait l'activer) par une saisie dans un textbox ou un combox en haut des colonne qui eux ont leur évènement change.

eric
 
Re : déclenchement d'une macro si application d'un filtre

En fait ça va être assez compliqué, avec emploi d'autant de dictionary par colonne à filtrer pour obtenir des listes déroulantes sans doublon.
Quel message veux-tu afficher ?
Parce qu'on suppose que l'utilisateur sait qu'il a cliqué quelque part...
Le résultat d'un calcul selon les lignes filtrées ?
Si c'est ça, ça peut-être fait plus facilement dans une cellule avec la fonction sous.total() et là ça serait se compliquer la vie pour rien.

eric
 
Dernière édition:
Re : déclenchement d'une macro si application d'un filtre

Bonjour

Sur la base de la modification du sous total, un petit exemple simple en pièce jointe.
On ne peut pas capturer l'événement worksheetè_change suite à un recalcul du coup j'ai ajouté la comparaison de l'ancienne valeur du sous total et celle de la nouvelle pour pouvoir déclencher le msgbox
En fait je dois dire que je ne comprends pas du tout l'intérêt de mettre un msgbox si on modifie le filtre : quand on clique dans une liste on sait bien qu'on modifie le filtre non ? Quel est l'avantage de le rappeler ?

Il me parait bien plus intéressant de rappeler les critères de filtre au dessus de celui-ci par exemple. Jacques Boisgontier a fait un très bel exemple avec cela sur son site.
 

Pièces jointes

Re : déclenchement d'une macro si application d'un filtre

Re, Salut Misange,

@eric : Je cherche à afficher ce message pour mettre en garde l'utilisateur final. Il ne s'agit pas d'un calcul, juste d'un message.
Mon fichier est complexe et cette manipulation est une des nombreuses manipulations, mon message sert à rappeler à l'utilisateur ce qu'il doit faire par la suite.

@Misange : Je vais étudier la solution que tu proposes et voir si je parviens à l'adapter.

Merci à vous deux 🙂

A plus
 
- 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
479
Retour