Faire une liste de données depuis une autre liste selon condition

gaetan2812

XLDnaute Junior
Bonjour,

Je n'arrive pas à trouver une solution à mon problème alors une nouvelle fois, je fais appel au forum !!

J'ai deux fichiers :
- Listes : avec une liste de 20 noms et un type (A, B ou C) leur est attribué
- ListeA : avec une liste où on a automatiquement les gens avec le type A selon le fichier "Listes"

Je ne sais pas comment faire pour que ListeA se fasse automatiquement selon le contenu du fichier "Listes".

J'espère que vous pourrez m'aider.

Merci d'avance
 

Pièces jointes

  • Listes.xlsx
    9.3 KB · Affichages: 31
  • ListeA.xlsx
    8.8 KB · Affichages: 37
  • Listes.xlsx
    9.3 KB · Affichages: 36
  • ListeA.xlsx
    8.8 KB · Affichages: 26
  • Listes.xlsx
    9.3 KB · Affichages: 33
  • ListeA.xlsx
    8.8 KB · Affichages: 30
Dernière édition:

titiborregan5

XLDnaute Accro
Re : Faire une liste de données depuis une autre liste selon condition

Bonjour Gaetan, le forum,

sans ouvrir les fichiers, pour faire une liste avec condition tu peux :
- utiliser des formules matricielles (mais je ne m'y connais pas assez bien! des spécialistes pourront t'en dire plus, notamment r@chid)
- faire un TCD et filtrer sur le ou les champs voulus
- utiliser le filtre élaboré qui correspond parfaitement à tes attentes! Tu peux le coupler à une macro simple pour une automatisation plus rapide! Par contre, es-tu obligé d'avoir 2 fichiers, ou sur 2 onglets ça marcherait aussi? Cette solution devrait être la plus simple à mettre en oeuvre!

Bon courage et n'hésite pas si besoin.
A+
 

Modeste

XLDnaute Barbatruc
Re : Faire une liste de données depuis une autre liste selon condition

Bonjour gaetan2812,
Salut Tibo,

Comme je venais de rédiger, je dépose tout de même ...

- ajouter une feuille dans le classeur Listes
- en Feuil2, I1 (par exemple), recopier le titre de colonne "Type"
- en Feuil2, I2, saisir "A" (sans guillemets)
- rester positionné sur la cellule I2 de la Feuil2 et dans Données, choisir Filtre avancé
- dans la boîte de dialogue qui s'affiche, renseigner (en sélectionnant, avec la souris):
* Plages: Feuil1!A2:C22
* Zone de critères: Feuil2!I1:I2
* Copier dans: Feuil2!A1 (cocher préalablement l'option "Copier vers un emplacement")​
- valider
- devraient maintenant apparaître, en Feuil 2, les enregistrements concernés
- faire une copie de cette feuille dans un nouveau classeur
- recommencer au 3e tiret (en indiquant "B", cette fois, en I2)

Utiliser l'enregistreur de macro, si on veut s'inspirer du code automatiquement généré (et qu'il conviendra d'adapter ensuite)
 

gaetan2812

XLDnaute Junior
Re : Faire une liste de données depuis une autre liste selon condition

Bonjour à vous deux,

Les solutions que vous proposez sont intéressante, mais malheureusement inadaptées à l'utilisation de mon fichier ...

En cherchant sur le forum et en essayant d'adapter quelque chose j'ai réussi à faire un petit truc ...

Sauf que je rencontre 2 problèmes :
- quand j'ouvre "ListeA" tout seul, les formules ne se mettent pas à jour !?
- dans "ListeA" une fois que les noms on bien étés trouvés, je me retrouve avec le titre "NomPers" qui se remet à chaque ligne.

C'est bizarre non ?
 

Pièces jointes

  • ListeA.xlsx
    14 KB · Affichages: 28
  • Listes.xlsx
    9.3 KB · Affichages: 33
  • ListeA.xlsx
    14 KB · Affichages: 29
  • Listes.xlsx
    9.3 KB · Affichages: 31
  • ListeA.xlsx
    14 KB · Affichages: 28
  • Listes.xlsx
    9.3 KB · Affichages: 29
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Faire une liste de données depuis une autre liste selon condition

gaetan2812 à dit:
Les solutions que vous proposez sont intéressante, mais malheureusement inadaptées à l'utilisation de mon fichier ...
Expliquer pourquoi aurait été intéressant aussi! (ceci dit, la première piste évoquée par Tibo était bien les formules matricielles!)


gaetan2812 à dit:
- quand j'ouvre "ListeA" tout seul, les formules ne se mettent pas à jour !?
Pas certain à 100% de l'explication, mais si tu nommes tes plages sans utiliser la fonction DECALER, ça semble fonctionner mieux!?


gaetan2812 à dit:
- dans "ListeA" une fois que les noms on bien étés trouvés, je me retrouve avec le titre "NomPers" qui se remet à chaque ligne.
Essaie avec cette autre formule matricielle en A3:
Code:
=SIERREUR(INDEX([Listes.xlsx]Feuil1!$A$1:$A$39;PETITE.VALEUR(SI(Type="A";LIGNE(Noms));LIGNES($1:1)));"")
 

gaetan2812

XLDnaute Junior
Re : Faire une liste de données depuis une autre liste selon condition

Expliquer pourquoi aurait été intéressant aussi! (ceci dit, la première piste évoquée par Tibo était bien les formules matricielles!)

Oui, je suis d'accord avec toi. Les vrais fichiers ne me permettent pas ce genre de chose, comme tu le dis uniquement les formules matricielles que Tibo parlait peuvent aller.

Pas certain à 100% de l'explication, mais si tu nommes tes plages sans utiliser la fonction DECALER, ça semble fonctionner mieux!?

Eux, par contre, je n'arrive pas à les nommer sans la fonction DECALER. Peux-tu me dire ce que je dois mettre à la place de cela stp :

Code:
=DECALER('[Listes.xlsx]Feuil1'!$A$2;;;MAX(('[Listes.xlsx]Feuil1'!$A$2:$A$39<>"")*(LIGNE('[Listes.xlsx]Feuil1'!$A$2:$A$39)))-1)
=DECALER('[Listes.xlsx]Feuil1'!$C$2;;;LIGNES(Noms))

Essaie avec cette autre formule matricielle en A3:
Code:
=SIERREUR(INDEX([Listes.xlsx]Feuil1!$A$1:$A$39;PETITE.VALEUR(SI(Type="A";LIGNE(Noms));LIGNES($1:1)));"")

Ouah cela marche très bien. Peux-tu m'expliquer rapidement (si tu as le temps) la différence entre les deux formules ?

Merci pour ton aide !
 

Modeste

XLDnaute Barbatruc
Re : Faire une liste de données depuis une autre liste selon condition

Re²,


Ah, ça! ... À la question "Pourquoi les solutions ne sont-elles pas adaptées à l'utilisation de ton fichier?" si tu réponds "Les vrais fichiers ne me permettent pas ce genre de chose" ... :eek: comme explication, ça se pose un peu là ;);) Heureusement que tu étais d'accord avec moi! :D


Pour les plages nommées, il vaut -à mon avis- mieux les définir dans ton classeur Listes.xlsx, avec, par exemple
Code:
=Feuil1!$A$2:$A$39
puis, dans ta formule, y faire référence sous la forme Listes.xlsx!Noms.
La formule en ListeA.xlsx devient donc
Code:
=SIERREUR(INDEX(listes.xlsx!Noms;PETITE.VALEUR(SI(listes.xlsx!Types="C";LIGNE(listes.xlsx!Noms)-1);LIGNES($1:1)));"")
... toujours avec Ctrl+Shift+Enter pour valider


Quant à la différence entre les formues ... je suis déjà bien content quand elles fonctionnent! Si tu retrouves le fil dans lequel tu étais allé pêcher ta formule, n'y était-il pas question d'éviter les doublons? D'autre part, si on utilise MIN, on ne peut récupérer qu'une valeur où les 2 conditions (2 SI imbriqués dans ta formule) sont vérifiées!
PETITE.VALEUR offre la possibilité d'en extraire plusieurs (le 2e argument étant le rang)

... Tu me suis??
 

gaetan2812

XLDnaute Junior
Re : Faire une liste de données depuis une autre liste selon condition

Ah, ça! ... À la question "Pourquoi les solutions ne sont-elles pas adaptées à l'utilisation de ton fichier?" si tu réponds "Les vrais fichiers ne me permettent pas ce genre de chose" ... :eek: comme explication, ça se pose un peu là ;);) Heureusement que tu étais d'accord avec moi! :D

J'avoue que ça tient pas mon argumentation. Si cela ne tenait qu'à moi, les premières solutions auraient largement suffis (voir je ne serai même pas venu sur le forum) mais on m'a demandé de faire le maximum de chose en automatique (quelle bande d'assistés :D) et là je savais pas faire ...

Quant à la différence entre les formues ... je suis déjà bien content quand elles fonctionnent! Si tu retrouves le fil dans lequel tu étais allé pêcher ta formule, n'y était-il pas question d'éviter les doublons?

J'ai retrouvé le fil,mais on ne parle pas de doublon. La personne m'avait balancé la formule comme cela.

D'autre part, si on utilise MIN, on ne peut récupérer qu'une valeur où les 2 conditions (2 SI imbriqués dans ta formule) sont vérifiées!
PETITE.VALEUR offre la possibilité d'en extraire plusieurs (le 2e argument étant le rang)

Un peu de mal à suivre, mais je m’accroche.

Merci pour ton aide !
 

Discussions similaires

Réponses
1
Affichages
152
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 464
Messages
2 088 632
Membres
103 896
dernier inscrit
Mickael..................