Macro qui s'active toute seule dès qu'un filtre est activé

Bonjour,

Je travail avec une feuille excel récurrente qui passe entre de nombreuses mains et chacun y va de son filtrage par colonne pour obtenir les infos dont il a besoin.

Cette feuille a une macro pour eliminer tous les filtres mais ce n'est pas suffisant, j'ai donc une autre macro qui me change la couleur de la cellule dans laquelle un filtre est activée :

Sub Filtro_Activo()
Dim flt As Filter

   Dim intCol As Integer

      For Each flt In ActiveSheet.AutoFilter.Filters

       intCol = intCol + 1
        If flt.On Then
          Cells(1, intCol).Interior.ColorIndex = 29
      Else
         Cells(1, intCol).Interior.Color = RGB(0, 176, 240)
      End If
   Next
End Sub

Ce que je recherche, c'est que cette macro s'active automatiquement dès qu'un filtre est activé, est-ce que c'est possible ?

Bonjour,

Un exemple à adapter.

Cdlt.

89orizhial.xlsm (15.55 Ko)

Bonjour,

Bonjour Jean-Eric

je te propose une autre version différente de ta demande, mais par expérience très pratique

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1").CurrentRegion.Offset(1, 0)) Is Nothing Then Exit Sub
If Application.CountA(Range("A1").CurrentRegion.Offset(1, 0)) = 0 Then
    On Error Resume Next
    ActiveSheet.ShowAllData
    On Error GoTo 0
Else
    Range("donnees[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion, Unique:=False
End If
End Sub
27filtre-auto.xlsm (16.66 Ko)

Bonjour,

tout d'abord, merci à vous deux.

Pour ma recherche, la version de Jean-Eric est géniale, 5 ou 6 personnes se servent de la feuille et chacun filtre selon les critères qui lui sont utiles c'est-à-dire dans des colonnes qu'ils sont les seuls à utiliser et les filtres sont rarement remis à zéro, maintenant on aura un indicateur visuel aussi pratique que simple.

Merci pour ta version Steelson, ça ne pourra pas s'appliquer à ma feuille, plusieurs dizaines de colonnes et plusieurs centaines voire milliers de lignes, par contre je lui vois une application très utile pour une autre feuille ou nous devons faire des recherches multicritères récurrentes, pour le moment j'utilise des tableaux dynamiques avec filtres de segmentation de données mais ce n'est pas forcément toujours le plus pratique donc ça vient à point nommé.

Très bon week-end à vous deux.

Re,

Merci pour ce retour.

Pense à clore le sujet.

Cdlt.

Bonjour Jean-Eric,

Je rouvre le sujet pour un défaut directement lié à la solution que tu as apporté (qui reste super pratique).

Lorsque l'option explicit est présente, la fonction Ctrl+Z ne fonctionne plus et si plusieurs feuilles excel sont ouvertes, le Ctrl+Z va s'appliquer sur une autre feuille ouverte !

L'en-tête qui change de couleur selon qu'un filtre soit activé à considérablement améliorer les choses, revenir en arrière... je n'ai pas envie de l'imaginer !

Existe t'il un moyen de faire cohabiter les 2 fonctions ?

Bonjour,

Que vient faire faire le Ctrl + Z dans le sujet ?

Confus…

Cdlt.

Bonsoir Jean-Eric,

Regarde la feuille que tu as envoyé, si tu rentres une donnée dans une cellule et que tu fais Ctrl+Z rien ne se passe.

Elime l'option explicit et recommence l'opération, Ctrl+Z fonctionne alors parfaitement.

La question est de savoir s'il existe un moyen de rendre compatible Ctrl+Z avec option explicit.

Cordialement,

Bonjour à tous,

n'importe quelle macro exécutée efface l'historique des actions effectuées et de ce fait inhibe Ctrl+Z.

De la même façon que si tu enregistres le fichier.

Si tu veux garder (en partie) Ctrl-Z pas d'autres choix que d'éviter les événementielles, et de lancer la macro par un bouton au moment où tu en as besoin. En sachant qu'en la lançant tu perds toujours toute annulation possible.

Ou utiliser une fonction personnalisée.

Ou bien te contenter des indices donnés par excel si filtre actif :

  • les n° de ligne sont en bleu
  • le filtre utilisé à un entonnoir
eric

...suite

J'avais lancé l'idée d'une fonction personnalisée sans trop y croire. Finalement...

Donc insérer une ligne au-dessus des filtres pour indiquer l'activation d'un filtre par une formule utilisant une fonction personnalisée + 1 MFC.

Ca sera plus clair avec le fichier.

eric

PS : fichier changé à 00h30, macro allégée + nb filtres

33filtres-actifs.xlsm (20.19 Ko)

Merci eriiic,

C'est super ça, l'identification de filtre actif reste suffisament visible et le Ctrl+Z fonctionne, que du bonheur.

Un gros big up pour le coup de main, merci beaucoup.

Bonjour,

en fait, autant la mettre la MFC sur la ligne de titre et masquer la ligne de la formule.

eric

C'est ce que j'ai fait, visuelement j'ai le même résultat qu'avec la macro sans perdre la fonction Ctrl+Z.

Rechercher des sujets similaires à "macro qui active toute seule filtre"