Recherche sur plusieurs lignes et colonnes

Bonjour à tous,

c'est mon 1er post ici bien que je vous lise depuis maintenant assez longtemps, je dois dire que ce forum est ma bible pour tout ce qui concerne Excel et jusqu'à présent j'ai toujours trouvé des réponses à mes questions mais là je sèche

J'ai un tableau avec une liste de référence dans la 1ere colonne, une même référence peut apparaître plusieurs fois dans cette colonne, en face de chaque référence correspond une valeur qui peut elle aussi apparaître sur plusieurs lignes.

un exemple:

Réf Valeur1 Valeur2 Valeur3...etc

A 1 2 3

A 1 4 5

A 1 2 6

B 4 5

B 5 7

En entrant dans une cellule définie une Réf (ex: A) je veux obtenir toutes les valeurs correspondant à cette réf sans les doublons,

Ex: A 1 2 3 4 5 6 (l'ordre n'a pas d'importance)

j'essaie en vain de trouver la bonne formule qui me donnerais toutes les valeurs correspondant à une référence et ceci sans les doublons mais je n'y arrive pas.

en fichier joint un exemple

merci de votre aide

28exemple.xlsx (10.98 Ko)

Bonjour,

Une proposition avec VBA

60exemple.xlsm (17.60 Ko)

A+

Bonjour frangy,

c'est parfait, merci beaucoup, je ne m'attendais pas à une réponse si rapide.

Autre question: peut on se passer du bouton et déclencher cette macro quand la cellule est validée ?

Voila, voila !

38exemple-2.xlsm (16.14 Ko)

A+

Désolé d'abuser de vos compétences mais je n'arrive pas à adapter votre code à ma feuille qui se présente comme dans l’exemple joint.

la matrice est dans une autre feuille et les résultats s'affiche sur 3 lignes ( ça c'est optionnel, je peux modifier)

Encore merci

23exemple2.xlsx (12.33 Ko)

Ben, voilou, voilou !

41exemple2.xlsm (16.79 Ko)

A+

C'est magnifique j'adorerais maîtriser le vba comme ça.

encore une dernière question: peux t'on exclure une colonne de la recherche ? (ex: je ne veux pas que les résultats de la colonne B apparaisse).

Merci

43exemple2.xlsm (17.26 Ko)

La réponse se trouve dans cette ligne de code :

For Each C In Cel.Offset(0, 1).Resize(1, 6)

Cel représente une cellule de la colonne A (ref1)

Cel.offset(0,1) représente la cellule décalée d'une colonne, soit celle de la colonne B.

Cel.offset(0,1) .Resize(1, 6) représente la plage qui débute à la cellule de la colonne B et qui est étendue à 6 colonnes, soit de B à G.

Si tu décales la plage d'une colonne, il faudra donc écrire :

Cel.offset(0,2).Resize(1, 6) qui représentera la plage qui débute à la cellule de la colonne C et qui est étendue à 6 colonnes, soit de C à H.

A+

Je me doutais que ça se passait du coté de cette ligne de code, il me manquait juste l'explication pour bien la comprendre.

C'est parfait, merci beaucoup pour ton aide et pour le petit cours de vba en plus

Sujet résolu.

Rechercher des sujets similaires à "recherche lignes colonnes"