XL 2013 Recherche de valeurs identiques dans un tableau

Lefanatique

XLDnaute Nouveau
Bonjour,

Actuellement novice en VBA, je souhaite rechercher une valeur dans un tableau.
La valeur à rechercher est saisie manuellement dans une cellule ( A1 par exemple ).

Dans la cellule A1, je souhaite saisir un numéro et avoir en retour ( si ce numéro est présent dans plusieurs colonnes ) la valeur d'une autre cellule de cette colonne.
Je vous met un imprime écran qui sera plus parlant.

Dans mon exemple, je souhaite saisir le numéro d'une prise réseau et me renvoyer une liste ou autre chose des noms qui y sont associés afin de pouvoir la traiter pour autre chose par la suite.
Ici ça serait TOTO et TATA

Merci par avance.

Cdlt,
Lefanatique

Prise.png
 

Lefanatique

XLDnaute Nouveau
En faite dans N36 on saisie l'utilisateur et la macro renvoie le chemin qui va bien sur le graphe du dessous.
Et pour la P36 je voudrais faire pareil mais pour les prises réseaux.
On sélectionne la prise réseau et dans le tableau ça check sur quelle utilisateur ça fait référence.
On sors les utilisateurs dans une colonnes pour traiter dans une macro par la suite
Mais comme certains utilisateurs sont sur des switchs ils ont les même prises et la RECHERCHEV ne marche pas.
J'avais crut comprendre qu'on pouvait faire ça avait des fonctions matricielle mais ça dépasse de loin mes compétences.

Je sais pas si j'ai réussi à me faire comprendre xD.
Si c'est pas le cas merci de me le signaler.

Cdlt,
Lefanatique
 

Lefanatique

XLDnaute Nouveau
Bonjour Jocelyn et merci beaucoup.

Ça a l'air d'être pile poil ce que je recherchais.
Par contre est-il possible d'obtenir les annotations ce code matricielle afin que je puisse le comprends et l'adapter au cas où s'il vous plait ?
J'ai juste un petit problème, c'est quand j'essaie d'étendre les zones de sélections ( B4:D4 / B17:D17 ) la formule ne semble plus marcher :s.

= INDEX($B$4:$D$4;PETITE.VALEUR(SI($B$17:$D$17=$K$29;COLONNE($B$4:$D$4)-1);LIGNES($1:1))).

Merci.

Cdlt,
Lefanatique.
 

Jocelyn

XLDnaute Barbatruc
re,

Allez c'est partit pour un essai d'explication :

= INDEX($B$4:$D$4;PETITE.VALEUR(SI($B$17:$D$17=$K$29;COLONNE($B$4:$D$4)-1);LIGNES($1:1))).

les éléments que l'on veux récupérer sont dans la plage INDEX($B$4:$D$4) ensuite il faut dire a excel la position des éléments des éléments dans la plage par cette partie de formule PETITE.VALEUR(SI($B$17:$D$17=$K$29;COLONNE($B$4:$D$4)-1);LIGNES($1:1))

on sait que pour sélection un élément il faut que la valeur de la plage $B$17:$D$17 soit égale $K$29 d'ou SI($B$17:$D$17=$K$29

et le petite.valeur va donner le numéro de colonne le plus petit ou l'on trouve $B$17:$D$17=$K$29 dans colonne $B$4:$D$4 (la fonction colonne() renvoie les numéro de colonne colonneB=2, ColonneC=3 ........) dans l'exemple la premiere valeur a renvoyer se trouve en colonne B qui est en fait le premier endroit de la plage $B$4:$D$4 si on s'en tient a COLONNE($B$4:$D$4) le renvoi serait 2 le numéro de colonne d'ou le -1 derriere COLONNE($B$4:$D$4) on peut se passer de se moins 1 a condition de débuter TOUTES les plages en colonne A. Pour la fonction petite.valeur on doit a un moment définir la enieme petite valeur pour cela on utilise LIGNES($1:1) sur la première ligne de recherche cette partie renvoie 1 (lorsque ligne() ou colonne() s'écrive avec un S le renvoie n'est pas le numéro de la ligne ou de la colonne mais le nombre de lignes ou de colonne contenues dans la paranthèse) en étirant vers le bas on obtient LIGNES($1:2) soit un résultat de 2 donc 2 ème petite valeur de numéro de colonne etc......

Dans une formule matricielle toutes les plage doivent avoir la même grandeur donc si si tu veux passer de B4: D4 a B4:Z4 la formule deviendrait

= INDEX($B$4:$Z$4;PETITE.VALEUR(SI($B$17:$Z$17=$K$29;COLONNE($B$4:$Z$4)-1);LIGNES($1:1)))

sans oublier la validation matricielle par les touche CTRL, Maj (au dessus de CTRL) et entrée

Voila j'espère que cela t'éclaire un peu autrement n'hésites pas

Cordialement
 

Lefanatique

XLDnaute Nouveau
Merci d'abord pour ces explications.
Je vois qu'on peut compter sur cette communauté ça fait plaisir.

Cette formule est vraiment pas des plus faciles à comprendre mais c'est déjà un peu plus claire.
J'arrive maintenant à l'étendre ( je pense que je ne faisais pas CTLR+MAJ+ENTRÉE avant ).

Je vais pouvoir essayer de faire ma recherche inversé dans ma macro.
À la base c'était pour ça, depuis un USER ou un n° de prise connaitre son chemin sur le graphe.

Encore Merci à vous tous.

Cdlt,
 

Discussions similaires

Réponses
9
Affichages
347

Statistiques des forums

Discussions
312 106
Messages
2 085 351
Membres
102 871
dernier inscrit
Maïmanko