OVH Cloud OVH Cloud

Recopie partielle d'une liste

13 réponses
Avatar
Indigo
Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2 colonnes.
Je voudrais les extraire automatiquement au fur et à mesure de la saisie sur
la feuille base pour que n'apparaisse sur une autre feuille Résultat que
certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert
sur cette image) :
http://oooforum.free.fr/cijoint/fichier/060407012721.gif

Feuille Base
Patricia 15
Sylvie 16
Patricia 12
Catherine 13
Joséphine 15
Patricia 16

Feuille Résultat
Patricia 15
Patricia 12
Patricia 16

Comment faire sans macro?

Merci à tous.

3 réponses

1 2
Avatar
Ardus Petus
Tu trouves ça plus facile à expliquer qu'une macro bien documentée?

--
AP

"Indigo" a écrit dans le message de
news:
C'est tout à fait le genre de procédé que j'attendais. Merci beaucoup JB.


Bonjour,

http://cjoint.com/?ehpB3tjtBA

Nommer la BD champ et le nom Nom

-Sélectionner A2:A34


=SI(ESTNUM(PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIG


NE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LIG
NE(INDIRECT("1:"&LIGNES(champ)))));

INDEX(champ;PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LI


GNE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LI
GNE(INDIRECT("1:"&LIGNES(champ))));1);"")

Recopier en colonne B et changer le dernier 1 par 2 (colonne à
récupérer)

-Valider avec Maj+Ctrl+Entrée

Cordialement JB






Avatar
JB
Il n'y a aucune macro dans ces classeurs. Je ne penses pas qu'il y ait
de pb de rapidité.

JB
Avatar
Indigo
La première solution est sans doute préférable puisqu'elle n'oblige pas à
rajouter deux colonnes de test (numérotaion). J'ai par contre du mal à
comprendre la logique de cette formule (le 2° exemple m'apparait trivial mais
sur celui-là je bloque un peu) :

=SI(ESTNUM(PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LIGNE(INDIRECT("1:"&LIGNES(champ)))));
INDEX(champ;PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));"";EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LIGNE(INDIRECT("1:"&LIGNES(champ))));1);"")

Quel est le synopsis de cette routine? Je voudrais pouvoir l'appliquer
également sur un autre tableur un peu similaire à Excel.

En tout cas je te dis merci beaucoup JB pour tes précédentes explications.
1 2