Filtre automatique en fonction d'une cellule

Bonjour à tous,

Etant novice en matière de VBA, j'ai besoin de vos précieux conseils:

J'ai un tableau en feuille 1 avec un listing de Managers. Dans un autre tableau (feuille 2), un manager est sélectionné.

  • Je souhaiterai obtenir un filtre en feuille 1 (donc sur la colonne AD) qui permette d'obtenir uniquement le manager en Feuille 2
  • Je souhaite que dès lors que le manager en feuille 2 change le filtre soit automatique et change de nouveau

Pour info les données en feuille 1 sont récupérées via une formule (lien vers autre classeur).

Je vous dépose un Excel qui vous permettra d'y voir plus clair dans mon explication.

D'avance merci et bonne journée,

Marc

Bonjour,

ci dessous ton fichier avec une proposition de macro :

https://www.cjoint.com/doc/17_01/GABi2a8wl6I_Exemple-pour-filtre-auto.xlsm

A chaque changement de la cellule A2 de la feuille 2, un filtre est appliqué à la feuille 1.

En espérant que cela te convienne,

RemBabar

Bonjour,

Merci pour ton retour rapide cependant je n'arrive pas à ouvrir ton fichier: l'extension n'est pas bonne! J'utilise microsoft pro plus 2013.

Peux tu m'envoyer dans un autre format (97-2003) ?

Merci bcp!

Bizarre que tu n'arrive pas à l'ouvrir ...

voici la version 93-2007 :

https://www.cjoint.com/doc/17_01/GABjlN0LiAI_Exemple-pour-filtre-auto.xls

RemBabar

Merci bcp ))

Re bonjour,

J'ai copier coller la macro sur mon tableau en renommant les cellules et onglets, mais rien ne se passe!

Le nom du manager (feuil2) en A2 est obtenu par une formule (=I4 par exemple).

Sais tu d'ou cela viens ?

Le fait que la cellule du nom est lié à une formule pose un problème, en effet excel ne prend pas ça pour un changement et ne lance pas la macros ...

Une solution (pas très fine) est de positionner le code dans la fonction "Worksheet_Calculate"

Private Sub Worksheet_Calculate()

    ' Suppression du filtre
    ThisWorkbook.Sheets("Feuil1").AutoFilterMode = False
    ' Si le nom est différent de vide ou de 0
    If Range("A2").Value <> "" And Range("A2").Value <> 0 Then
        ' Filtre en Feuil1, sur la colonne 4, avec comme critère la valeur de la cellule "A2"
        ThisWorkbook.Sheets("Feuil1").Range("A1").AutoFilter Field:=4, Criteria1:=Range("A2").Value
    End If

End Sub

A chaque recalcul de la feuille, le code se lancera et appliquera le filtre.

Dis moi si je suis assez clair et n'hésite pas si t'as des questions !

RemBabar

Bonjour,

Une proposition à étudier.

Cdlt.

887marc8769.xlsm (26.36 Ko)

Bonjour marc8769 (RemBabar, Jean-Eric)

Une autre proposition toute simple...

en utilisant Worksheet_Activate() du module de feuil1

Rechercher des sujets similaires à "filtre automatique fonction"