Recherche + association valeur cellules voisines

Bonjour,

Je ne suis pas grand programmateur Excel, donc excusez par avance ma "naïveté Excelienne"...

Voilà mon problème :

Dans une matrice, je souhaite effectuer une recherche sur une valeur particulière entrée par l'utilisateur.

Une fois la valeur trouvée, je souhaite qu'Excel renseigne les valeurs du carré 7*7 de la matrice autour de cette valeur trouvée.

Enfin, à chaque valeur de ce carré 7*7, je souhaite qu'Excel associe la valeur d'une matrice correspondante (à la même dimension), juste en dessous.

J'ai mis un fichier test d'exemple en pièce jointe pour bien visualiser ma demande.

Je vous remercie d'avance pour votre aide, qui me sortirait une belle épine du pied!

Bonne journée,

Alex

12test.xlsx (15.73 Ko)

Bonjour,

une solution qui utilise une fonction personnalisée (trouve), qui permet de retrouver une valeur dans une matrice à 2 dimensions.

voir fichier

29test-bdsssss.xlsm (21.10 Ko)

Bonjour,

Chapeau bas ! Je me prenais la tête avec la combinaison index decaler equiv ...

Je me permet de mettre de coté ta fonction perso trouve()

Leakim

leakim a écrit :

Bonjour,

Je me permet de mettre de coté ta fonction perso trouve()

Leakim

Bonjour Leakim,

étonnant que cette fonction n'existe pas en standard, à moins qu'il n'y ait une solution via une fonction matricielle.

Bonjour et merci déjà pour cet version!

Cet exemple marche, mais quand je tape un 2ème test (ex : G10), le pavé 7*7 n'est pas bien respecté (cf exemple joint)

En effet, la colonne K n'est pas prise entièrement (juste K07), et la colonne des G est prise 2 fois... C'est bizarre!

Quelqu'un a une idée??

Merci encore!

Alex

5test2.xlsm (21.52 Ko)

bonjour,

chez moi ton fichier qui est censé avoir une erreur n'en montre pas.

En fait, je viens de me rendre compte d'un truc : ton fichier est envoyé en "mode protégé".

Excel me demande alors "Activer la modification", ce que je fais. A l'activation, j'ai ça :

H10 #NOM? #NOM?

#NOM? #NOM?

#NOM? #NOM?

#NOM? #NOM?

#NOM? #NOM?

#NOM? #NOM?

#NOM? #NOM?

[...]

Excel me dit que : "Les macros ont été désactivées". Je peux "Afficher le contenu". J'ai alors ces modifications :

H10 L07

K08

K09 24

K10

K11

K12

K13 21

[...]

Ce qui change les résultats! Je ne comprends vraiment pas...

Bonjour,

une nouvelle version qui corrige une erreur dans les formules, mais qui n'est pas une solution au problème que tu as mentionné (car je ne parviens pas à le reproduire chez moi).

9test-bdsssss.xlsm (21.00 Ko)

Ok merci.

Le bug que j'ai décrit dans mon dernier message ne se reproduit plus avec cette nouvelle version. Je n'ai pourtant pas l'impression que quelque chose ait changé...

Par contre, il y a un truc bizarre. Ce fichier a l'air de fonctionner correctement. En effet, si je fais plusieurs tests, l'actualisation des cellules sélectionnées est cohérente.

Par contre, quand je double-clique sur la 1ère case de la colonne Pavé 7*7, je rentre donc dans la formule que tu as tapée. Si je tape alors "Entree", sans rien changer à cette formule, j'ai ce résultat : #VALEUR!

On dirait qu'Excel ne comprend pas la formule, quand c'est moi qui la rentre (si je copie-colle la formule, telle qu'elle est écrite,

dans une autre cellule, j'ai aussi la réponse #VALEUR!).

Tu as une idée d'où peut venir ce problème?

bonjour,

je viens de me rendre compte que tu as une version Fr et que ma fonction personnalisée "trouve" est en conflit avec une fonction standard d'excel FR.

je te joins une version avec une fonction personnalisée rebaptisée "trouveM", plutôt que "trouve"

23test-bdsssss.xlsm (21.13 Ko)

Bonjour

Une solution par formules

La formule matricielle

=ADRESSE(MIN(SI($A$3:$L$18=$N$4;LIGNE($A$3:$L$18)));MIN(SI($A$3:$L$18=$N$4;COLONNE($A$3:$L$18))))

qui renvoie l'adresse recherchée dans A3:L18, est nommée Adresse

Ce nom est ensuite utilisé en colonne Q

En Q4, incrémenté vers le bas

=DECALER(INDIRECT(Adresse);LIGNES($O$4:O4)-(4+ENT((LIGNES($O$4:O4)-1)/7)*7);ENT((LIGNES($O$4:O4)-1)/7)-3)

en R4 incrémenté vers le bas

=RECHERCHEH(GAUCHE(O4;1);$A$20:$L$36;(DROITE(O4;2)*1)+1;FAUX)

Cordialement

12test.xlsx (16.62 Ko)

Bonsoir amadéus,

Je me disais bien qu'il y avait une procédure par formule... Je ne maîtrise pas bien la fonction Adresse() donc je l'avais écartée...

Je vais m'y intéresser plus pleinement avec une démonstration comme celle-ci.

Merci,

Leakim

Ok super, ça marche.

Désolé pour ma réponse tardive, mais j'ai fait plein de tests aujourd'hui avec ce que vous m'avez envoyé, et ça ma convient très bien!

Merci beaucoup à ceux qui se sont penchés sur mon problème, en particulier h2so4, Amadéus et leakim.

J'ai juste une dernière question :

Si je sélectionne une cellule dont le pavé 7*7 qui l'entoure sort de la matrice (voir fichier joint quand je sélectionne H03 par exemple), j'ai des cellules annexes dans la colonne "Pavé 7*7" (dans l'exemple, j'ai "K", qui correspond à l'en-tête de la matrice).

Or, dans la colonne à droite pour faire correspondre la valeur de la matrice correspondante située en dessous, Excel fait une recherche sur "K", trouve une correspondance en C3 [K01], décale de 18 cellules vers le bas, et donc renseigne une valeur qui ne correspond pas à ce que je veux!

Je pense qu'il faudrait donc ajouter un test dans la 1ere colonne (pavé 7*7), pour que si on sort de la matrice, Excel ne renseigne pas de valeur (comme ça, aucune correspondance non désirée sera effectuée). Est-ce possible?

Merci d'avance...

Alex

Bonsoir,

une solution sans modifier les formules mais en modifiant la disposition des cellules.

10test-bdsssss.xlsm (20.84 Ko)

Bonsoir,

Tes remerciements sont sympas, mais perso j'ai pas réussi à grand chose...

Par contre grâce à ton post j'en ai encore appris, alors merci à toi !

Leakim

Ok merci!

Passez une bonne soirée, et vive Excel-pratique!

Alex

Rechercher des sujets similaires à "recherche association valeur voisines"