Afficher des lignes en fonction d'une liste déroulante

Bonjour,

Je vous expose mon problème :

J'ai une base de données avec toutes les personnes de mon entreprise, ainsi que plusieurs infos les concernant.

Je souhaite que, lorsque j'inscris le matricule de l'employé, toute la ligne se recopie automatiquement.

Malheureusement, la recherchev ne fonctionne pas car certains employés sont sur plusieurs services en même temps, et la recherchev s'arrête de chercher dès qu'elle trouve une correspondance.

Voir le fichier joint pour exemple :

Il y a 4 services : A, B, C et D

Si je saisi le matricule 1, une recherchev fera parfaitement l'affaire car Jacques n'est que dans ce service.

Par contre, le matricule 2, Michel, est dans le service B mais également dans le service D.

La même chose pour le matricule 3, Laurent.

Ce que je veux :

Si dans la liste déroulante du haut, j'ai marqué service D, alors quand je rentre le matricule "2", la ligne 11 de la feuille "BD" est inscrite, et non la ligne 9, que me donnerait une recherchev classique.

J'ai bien conscience que je vais devoir passer par une macro, mais je ne suis vraiment pas expérimenté en VBA.

Je m'arrache les cheveux à cause de ce problème, j'ai vraiment besoin de votre aide !

Merci beaucoup.

Bonjour,

En A6 :

=SIERREUR(INDEX(BD!A$8:A$21;PETITE.VALEUR(SI(BD!$B$8:$B$21=$C$2;LIGNE(BD!$B$8:$B$21)-7;"");LIGNE(1:1)));"")

Validation matricielle (Ctrl+Maj+Entrée).

Recopier sur tout le tableau.

Cordialement.

Bonjour,

avec filtre élaboré

P.

Hello à Fernand !

Ouf ! Merci beaucoup pour vos réponses géniales à tous les deux.

Pour l'instant j'ai pas vraiment compris mais je vais étudier ça. En tout cas ça fonctionne parfaitement.

Il me manque plus qu'à comprendre tout ça pour pouvoir l'appliquer à mon tableau, j'espère y parvenir ...

La solution matricielle est peut-être moins lourde que la macro ou je me trompe ? j'aimerais utiliser la solution la moins contraignante et la moins lourde, mon fichier étant déjà très volumineux.

Merci beaucoup !

AF-VBA a écrit :

Ouf ! Merci beaucoup pour vos réponses géniales à tous les deux.

Pour l'instant j'ai pas vraiment compris mais je vais étudier ça. En tout cas ça fonctionne parfaitement.

Il me manque plus qu'à comprendre tout ça pour pouvoir l'appliquer à mon tableau, j'espère y parvenir ...

La solution matricielle est peut-être moins lourde que la macro ou je me trompe ? j'aimerais utiliser la solution la moins contraignante et la moins lourde, mon fichier étant déjà très volumineux.

Merci beaucoup !

La formule (matricielle) peut ralentir le pc par rapport au filtre élaboré...

Essaie sur 5 ou 10.000 lignes tu t'en rendras compte

P.

Ma BD fait 8000 lignes.

Et effectivement, impossible d'utiliser la formule matricielle.

Je vais essayer avec la macro même si je ne sais pas exactement comment m'y prendre.

AF-VBA a écrit :

Ma BD fait 8000 lignes.

Et effectivement, impossible d'utiliser la formule matricielle.

Je vais essayer avec la macro même si je ne sais pas exactement comment m'y prendre.

Il faut que la zone TBLO (onglet BD )soit redéfinie sur l'ensemble de tes colonnes (F5 pour voir où sont les zones nommées)

il faut que les titres des colonnes soient rigoureusement identiques et ça marche

P.

Bonjour,

Une proposition à étudier.

Excel 2010+.

Cdlt.

Jean-Eric a écrit :

Bonjour,

Une proposition à étudier.

Excel 2010+.

Cdlt.

Bonjour Jean-Eric,

simple et efficace

comment fais-tu pour avoir les tailles des services (tout en haut) si petites ?

si j'agrandi ou rétréci le segment, je n'y arrive pas surtout le D en dessous

Merci

Patrick1957,

J'ai transposer la macro sur mon fichier, donner les bons noms endroits etc.

Cependant, une erreur intervient :

Erreur d'exécution 1004 : Impossible de déplacer une partie d'un rapport de TCD ...

Je ne comprends pas car je veux que les cellules soient rajoutées dans un tableau fait de bordure uniquement, pas du tout dans un TCD...

Sais-tu d'où l'erreur peut-elle provenir ?

Merci.


Bonjour Jean-Eric.

Ta proposition me plait bien, elle permet de pouvoir sélectionner plusieurs services si nécessaires, ou même de pouvoir faire apparaître tout le personnel en même temps.

Cependant ... Peux-tu m'expliquer comment la mettre en place dans mon tableau ?

C'est à dire : que faut-il modifier dans la macro ? Comment créer le segment ? Comment cela fonctionne ? Je n'avais jamais utilisé ça auparavant ...

De plus, je ne veux pas que tous les services apparaissent en haut. En fait j'ai plusieurs onglets. Dans le 1er, je veux que les services proposées soient 1, 2, 4 et 5. Et dans le deuxième, 3, 6, 7 et 8.

Comment mettre ça en place ?

Merci.

re,

c'est souvent le cas, voilà pq on demande d'envoyer un fichier IDENTIQUE au réel , quitte à faire une copie et remplacer les données sensibles pas des données bidons

P.

De toute manière, les fichiers déposés doivent faire 500 ko au maxi. Soit bien moins que mon tableau ...

Tu n'as aucune idée de pourquoi ce message s'affiche alors que je n'utilise pas de TCD ?

AF-VBA a écrit :

De toute manière, les fichiers déposés doivent faire 500 ko au maxi. Soit bien moins que mon tableau ...

Tu n'as aucune idée de pourquoi ce message s'affiche alors que je n'utilise pas de TCD ?

Juste mais 20-30 lignes significatives suffisent , pas 10.000

RE,

Bonjour Patrick,

Je ne comprends pas tout.

comment fais-tu pour avoir les tailles des services (tout en haut) si petites ?

si j'agrandi ou rétréci le segment, je n'y arrive pas surtout le D en dessous

AF-VBA,

Je renvoie le classeur précédent avec des explications (sommaires).

Au sujet des services, c'est A, B, etc..., ou 1, 2, 3, etc...

Il faut être précis dans ta demande, et comme suggéré par Patrick, un classeur représentatif serait le bienvenu.

Cdlt.

Je ne comprends pas je ne parviens pas à passer à un fichier inférieur a 1000 ko, alors que je n'ai garder que l'essentiel ...

Merci Jean-Eric, je vais essayer de me débrouiller avec ça.

AF-VBA a écrit :

Je ne comprends pas je ne parviens pas à passer à un fichier inférieur a 1000 ko, alors que je n'ai garder que l'essentiel ...

Merci Jean-Eric, je vais essayer de me débrouiller avec ça.

Avec CTRL-END (fin) tu verras que ta FAUSSE dernière ligne est peut être très éloignée ...

Dans ce cas, il faut un code VBA pour trouver la vraie ça peut prendre du poids à cause de ça.

P.

Je connais cette astuce mais non ma dernière cellule n'était pas éloignée ...

re,

il te reste à le zipper alors

P.

Re,

Voici le fichier. J'ai une erreur 1004 dessus j'ignore pour quelle raison ...

Merci.

5fichier-neutre.7z (155.19 Ko)

Voilà...

suite demain, là je dois quitter

P.

Rechercher des sujets similaires à "afficher lignes fonction liste deroulante"