Macro et filtre dynamique

alb175

XLDnaute Nouveau
Bonjour,

J'ai un problème avec une macro.

J'ai une liste de personnes avec différentes informations (age, pays, salaire...). Je veux copier dans une cellule à part entière le top 5 des salaires les plus élevés. J'ai donc créé une macro en filtrant les salaires, du plus élevé au plus faible et copié dans une cellule (par exemple de E100 à G105) les cinq premiers. Si un changement apparait dans le top 5, je dois recliquer sur ma macro pour modifier mon classement en cellule E100. Cependant, je souhaiterais que mon filtre dans les salaires (du plus grand au plus petit) soit dynamique et qu'il évolue automatiquement en cas de changement, c'est à dire que les cellules E100:G105 évolue sans recliquer sur ma macro.

Suis-je assez clair?
Merci de votre aide
 

kingfadhel

XLDnaute Impliqué
Re : Macro et filtre dynamique

Re,
bonjour Job,
on ne demande pas la mer à boire, juste un fichier avec des données fictives (non confidentielles) pour mieux venir en aide.
un fichier exemple ne vaux rien pour les demandeurs mais vaux beaucoup pour les "sauveteurs".
 

alb175

XLDnaute Nouveau
Re : Macro et filtre dynamique

Bonjour Messieurs,

Désolé de ne pas vous répondre plus tôt...Je suis plutôt débutant en Excel je ne sais donc pas trop la différence entre une VBA et une formule matricielle...même si je pense que ce que je cherche est une VBA...

Vous trouverez ci-joint mon document...Pour résumer, si je modifie les salaires des personnes, je voudrais que ça bouge automatiquement, sans recliquer sur le bouton "highest salaries"

Merci de votre aide!
 

Pièces jointes

  • Example1.xlsm
    20.5 KB · Affichages: 62
  • Example1.xlsm
    20.5 KB · Affichages: 84
  • Example1.xlsm
    20.5 KB · Affichages: 84

job75

XLDnaute Barbatruc
Re : Macro et filtre dynamique

Bonsoir alb175, le fil,

Il n'y a vraiment pas besoin de VBA pour ce genre de problème, très classique.

1) Allez dans le gestionnaire de noms (onglet Formules du ruban) et définissez les noms :

Salary =DECALER(Sheet1!$F$1;1;;NB(Sheet1!$F:$F))

matrice =Salary-LIGNE(Salary)/1000000

Ce dernier nom permet de faire la distinction quand il y a des salaires identiques.

2) Formule en M14, à tirer à droite et vers le bas :

Code:
=INDEX(A:A;EQUIV(GRANDE.VALEUR(matrice;LIGNES($14:14));matrice;0)+1)
Fichier joint.

A+
 

Pièces jointes

  • Example(1).xls
    49 KB · Affichages: 69
  • Example(1).xls
    49 KB · Affichages: 62
  • Example(1).xls
    49 KB · Affichages: 75

Discussions similaires

Réponses
5
Affichages
424

Statistiques des forums

Discussions
312 691
Messages
2 090 992
Membres
104 721
dernier inscrit
Hmidou