Extraction de données en fonction d’un critère

Bonjour le forum,

Je voudrais pouvoir faire une extraction de mon onglet « base » de toutes les formations qu’on fait une ou des personnes en fonction d’une formation de départ. Pour être plus clair je prends un exemple. Si je recherche par exemple le formation de départ « N2 » je voudrais voir apparaitre la même chose que dans l’onglet « Résultat-exemple » du fichier exemple joint à savoir toutes les personnes qui ont fait le stage « N2 » mais également tous les autres stages de cette ou ces personnes regroupés par ordre alphabétique des noms et prénoms puis croissant des dates de fin.

J’ai essayé de faire ce travail avec un TCD (onglet « TCD ») mais le résultat ne se fait que sur une seule formation donc ça ne marche pas.

Comment je peux trouver une solution à ce problème ?

Cordialement.

Le fichier exemple .

21exemple.xlsx (22.71 Ko)

Apparemment il ne doit pas exister de solution à ma question. Tant pis pour moi et merci à ceux qui ont éventuellement essayé de m'en trouver une.

bonjour

pas de panique ; l'ancetre est là

7philipe.xlsx (30.11 Ko)

cordialement

Merci l'ancetre

Comme je dois appliquer ce résultat dans un autre fichier, est-ce que tu peux m'expliquer comment tu as fait avec des formules et plus particulièrement le principe de tes formules "EQUIV(PETITE.VALEUR".

J'ai cherché sur le net mais ce n'est pas trop clair.

Une question : tu as nommé une zone "nom" ayant pour valeur "=base!$E$2:$E$72" qui est utilisé par d'autre comme la zone "session". Le soucis c'est que le nombre de lignes n'est pas figé alors à moins d'augmenter manuellement ":$E$72" en ":$E$100" par exemple comment je peux faire.

Merci encore tulipe_4 pour ta solution qui fonctionne correctement.

Cordialement

re

tu merites qques explications

14philipe2.xlsx (36.38 Ko)

le tablo dans base est desormais nommé en dynamique

cordialement

Super pour les explication. Merci. Je me mets le sujet en résolu.

Si tu peux m'expliquer pour mon info à quoi correspond le signe "><" et où je peux avoir des explications sur la formule "PETITE.VALEUR" qui n'est pas trop clair pour moi.

Merci encore.

bonjour

"><" uniquement opérationnel avec NB.SI

ce critère permet de compter le nb de valeurs texte en evitant les #nombre ;#na......... au cas ou

tandis que NBVAL compte tout (meme les erreurs) donc pour dimenssionner une plage issue de formules ,c'est mieux ; donc à employer pour colonne de textes (sans vide intermédiaire comme d'hab)

PETITE.VALEUR

Cette fonction trie par ordre croissant en fonction d'un coef (K)

en genéral pour (K) on emploie LIGNE sans mettre de $ pour pouvoir incrémenter

nb) LIGNE n'a rien à voir avec une ligne quelquonque du tableau , c'est simplement le moyen de renvoyer 1;2;3;4......... qui correspond au "rang" ,ou position dans la matrice "classée virtuellement" lors de l'utilisation de la fonction

cordialement

Super clair. Merci tulipe_4 pour ces infos qui me paraissent très claires.

Cordialement

Bonjour le forum,

Je réactive mon sujet pour un complément de réponse. Si tulipe_4 qui m’avait proposé une solution à ma question initiale ou un autre peut m’apporter la réponse ça serait génial.

J’ai légèrement modifié le fichier initialement proposé en y ajoutant deux colonnes de plus (civilité et origine) mais je ne comprends pas pourquoi ces deux colonnes restent vierge dans l’onglet « Résultat_exemple ». Je ne comprends pas également que je me retrouve avec des lignes dans l’onglet « Résultat_exemple » où par moment j’ai juste uniquement le nom de la personne sans que les autres colonnes soient remplies (exemple avec la formation « PART »). Je pense avoir adapté correctement les formules aux modifications que j’ai apportées. Je n’arrive pas à comprendre où est le souci. Quelqu’un peut m’expliquer où est mon problème.

Cordialement.

Bonjour,

je laisse le soin à Tulipe (que je salue) de compléter (cela sort de mes compétences)

je te propose une autre formule avec une macro simple

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1").CurrentRegion) Is Nothing Then
    On Error GoTo tout
    Sheets("base").ListObjects(1).Range.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("A2:A3"), CopyToRange:=Range("A5").CurrentRegion.Resize(1), Unique:=False
    Exit Sub
tout:
    ActiveSheet.ShowAllData
End If
End Sub

J'ai passé les données de base en tableau, mais ce n'est pas obligatoire pour le fonctionnement.

Merci Steelson pour ta réponse. Ta solution fonction très bien MAIS sur une formation seulement ce qui n'est pas tout à fait le résultat que je recherche. En effet la finalité c'est que dans le tableau de l'onglet "Résultat_exemple" apparaisse toutes les formations par ordre chronologie qu'ont fait la ou les personnes par rapport à une formation de départ ce que me faisait le fichier proposé par Tulipe_4 que avant que je le modifie légèrement avec ces deux colonnes supplémentaires. Exemple si je la formation de départ est "C120" je devrait voir, en plus des autres cas, dans le tableau de l'onglet "Résultat_exemple" au moins trois fois le noms "Haas" pour les formations C120 et PART deux fois or dans ton fichier je le verrai qu'une fois ce qui est normal puisqu'il a fait qu'une fois la formation "C120".

Merci encore pour ta proposition.

Cordialement.

Désolé, j'ai été un peu vite

Voici une correction avec deux filtres successifs ...

L'ordre est celui du fichier de base, il est normalement respecté.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1").CurrentRegion) Is Nothing Then
    On Error GoTo tout
    Sheets("base").ListObjects(1).Range.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("A2:A3"), CopyToRange:=Range("C2"), Unique:=False
    Sheets("base").ListObjects(1).Range.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("C2").CurrentRegion, CopyToRange:=Range("E2:M2"), Unique:=False
    Exit Sub
tout:
    ActiveSheet.ShowAllData
End If
End Sub

Merci de nouveau Steelson pour ton travail. Le fichier donne le résultat que je recherchais. Je ne sais pas pourquoi j'ai deux colonnes "Identifiant" mais c'est un détail. Je mets de nouveau le sujet en résolu mais si par hasard "tulipe_4" ou un autre ayant de meilleur connaissance en Excel que moi peut me dire qu'est-ce que j'ai fait dans la modification de le fichier initial pour que le résultat ne soit plus celui attendu ça me permettrait de m'améliorer dans les formules et également d'avoir deux fichiers l'un avec du VBA et l'autre uniquement avec des formules.

Enfin merci encore Steelson.

Cordialement.

Merci de nouveau Steelson pour ton travail. Le fichier donne le résultat que je recherchais. Je ne sais pas pourquoi j'ai deux colonnes "Identifiant" mais c'est un détail.

La première colonne est le résultat du filtre sur la formation. Elle liste donc les identifiants des personnes ayant suivi le choix indiqué en jaune.

Ensuite, je me ressers de cette première liste pour établir le tableau : le critère du filtre est donc ici la première liste des identifiants.

Tu peux masquer la colonne C, cela devrait fonctionner.

Merci pour ta réponse.

Rechercher des sujets similaires à "extraction donnees fonction critere"