Extraire des données en fonction d'un critère

stephcic

XLDnaute Junior
Bonjour,
j'ai de nouveau besoin de faire appel à ce génial forum.
Voilà, en gros, mon besoin :
en fonction du matricule choisi en cellule A2 de mon onglet synthèse, j'aimerais remonter automatiquement les données de la feuille PERF correspondant à ce matricule et correspondant aux en-têtes de colonne en ligne 6 de la feuille Synthèse.
Il peut y avoir une ligne ou plusieurs à remonter.
Et que les données se mettent à jour à chaque changement de matricule.
je vous joins pour exemple en fichier pour être bien clair.

Merci d'avance pour votre aide.

Stéphane
 

Pièces jointes

  • test.zip
    41 KB · Affichages: 37
  • test.zip
    41 KB · Affichages: 40
  • test.zip
    41 KB · Affichages: 40

Cousinhub

XLDnaute Barbatruc
Re : Extraire des données en fonction d'un critère

bonsoir,

bonsoir, Jocelyn

un exemple avec une macro évènementielle

le code dans le code de la feuille "synthese" (clic droit sur le nom de l'onglet, visualiser le code)

Bonne soirée
 

Pièces jointes

  • test_v1.zip
    47.6 KB · Affichages: 67
  • test_v1.zip
    47.6 KB · Affichages: 72
  • test_v1.zip
    47.6 KB · Affichages: 72

stephcic

XLDnaute Junior
Re : Extraire des données en fonction d'un critère

MERCI Jocelyn pour ton aide que j'ai réussie à adapter à mon cas.
Par contre, je ne comprends absolument rien à la formule que tu as utilsée :
=SI(LIGNE()-6>MAX(PERF!$A:$A);"";INDEX(PERF!$A$1:$L$8;EQUIV(LIGNE()-6;PERF!$A:$A;0);EQUIV(SYNTHESE!A$6;PERF!$1:$1;0)))
Pourrait on me la décortiquer et me l'expliquer ?
Merci par avance
Stéphane
 

Jocelyn

XLDnaute Barbatruc
Re : Extraire des données en fonction d'un critère

re,
Bonjour bhbh,

bon alors un test d'explication,

comme tu l'as vu dans la feuille PERF j'ai ajouté une colonne qui sert a indexer les lignes a retourner,

de la la formule SI(LIGNE()-6>MAX(PERF!$A:$A);"";INDEX(PERF!$A$1:$L$8;EQUIV(LI GNE()-6;PERF!$A:$A;0);EQUIV(SYNTHESE!A$6;PERF!$1:$1;0)))

la partie LIGNE()-6 placée sur la ligne 7 de la feuille synthèse va renvoyer ligne()=7 - 6 =1 et donc si ligne()-6 soit 1 et supérieur a la valeur maximum de la colonne d'indexation de la feuille PERF colonne A on ne met rien

autrement
INDEX(PERF!$A$1:$L$8;EQUIV(LI GNE()-6;PERF!$A:$A;0);EQUIV(SYNTHESE!A$6;PERF!$1:$1;0)))

on veux avoir une valeur qui se trouve dans le tableau PERF!$A$1:$L$8

pour savoir sur quelle ligne du tableau se trouve cette valeur on emploi

EQUIV(LIGNE()-6;PERF!$A:$A;0) ici on recherche la valeur ligne() -6 soit la valeur 1 de la colonne A de la feuille PERF!$A:$A et le 0 de fin dit que l'on veux la valeur exacte

maintenant il faut définir la colonne dans laquelle est la valeur pour cela
EQUIV(SYNTHESE!A$6;PERF!$1:$1;0) qui dit lorsque nous somme en A7 de la feuille synthèse de chercher la valeur de A$6 soit l'intitulé de la colonne dans l'exemple "Fonction" dans la ligne 1 de la feuille PERF

de cett facon nous avons le numéro de ligne et le numéro de colonne ecel renvoie donc la valeur au croissement de ces 2 éléments

voila je ne sais pas si j'ai été suffisament clair pour le cas ou n'hésite pas a redemander

Jocelyn
 

Discussions similaires

Statistiques des forums

Discussions
312 328
Messages
2 087 318
Membres
103 515
dernier inscrit
Cherbil12345