Passer la matrice en varible dans une Recherchev

gexjere

XLDnaute Nouveau
Bonjour à tous,

Je me présente, jérémy étudiant en école de commerce.

je suis en train de réaliser un projet dans lequel je dois rechercher des prix suivant les enseignes, les références et les mois de l'année.

Mon problème :
J'ai regroupé toutes les enseignes pour une même référence dans un même tableau et multiplié ce type de tableau par 12 (pour tous les moins de l'année). La solution la plus simple que j'ai trouvé c'est de faire une rechercheh dans mon tableau afin de venir afficher les prix de l'enseigne, de la référence suivant le mois.

Ma rechercheh est la suivante :
RECHERCHEH($D$11;prix'!$B$2:$Z$1678;Corres!$C$16;FAUX)
$D$11 => la cellule contenant le mot "prixfac" a venir rechercher dans la feuille de prix
prix'!$B$2:$Z$1678 => la feuille et le tableau dans laquelle sont stockés tous les prix
Corres!$C$16 => table de correspondance en fonction de la référence

La formule marche très bien pour le mois de janvier mais ne marche plus pour les autres mois. Cela s'explique facilement vu que dans le tableau excel contenant les 12 petit tableau, il trouve la cellule "prixfac" pour le mois de janvier et ne va donc pas aller voir les autres "prixfac" pour fevrier, mars, ...

Mon idée, et je ne sais pas du tout si c'est réalisable, c'est de passer comme argument la matrice dans la rechercheh, cela me permettrait avec un petit tableau de correspondance de venir lui indiquer le tableau a allé voir.

Par exemple pour janvier j'indique a ma rechercheh qu'il faut allé voir le tableau en $B$2:$Z$1678, pour fevrier il doit aller dans $AB$2:$AZ$1678, pour mars $BB$2:$BZ$1678 et ainsi de suite.

Par exemple :
La cellule A1 contient : "prix'!$B$2:$Z$1678"
Ce qui donne pour ma rechercheh : RECHERCHEH($D$11;A1;Corres!$C$16;FAUX)

Aprés plusieurs essayent, je n'arrive pas à indiquer à la rechercheh les différents tableaux, pourtant la cellule contient bien l'adresse du tableau "prix'!$B$2:$Z$1678". Je pense que la rechercheh ne comprends pas qu'il faut utiliser la valeur de la cellule A1 et non pas seulement "A1" comme emplacement de tableau.

Est ce que vous savez comment passer la matrice dans la rechercheh, est-ce seulement possible ?

Voila, j'ai essayé d’être le plus clair possible,

je tiens à vous remercier par avance,
En espérant de vos nouvelles rapidement

Bien Cordialement
Jeremy
 

Tibo

XLDnaute Barbatruc
Re : Passer la matrice en varible dans une Recherchev

Bonsoir,

Je ne sais pas ce qu'il est possible de faire, ni si c'est possible.

Mais pour qu'on puisse te répondre, il nous faudrait ton fichier, ou du moins un extrait (sans données confidentielles).

Nous comprendrons mieux ton problème et serons peut-être en mesure d'y apporter une réponse.

@+
 

gexjere

XLDnaute Nouveau
Re : Passer la matrice en varible dans une Recherchev

Bonsoir,

Merci beaucoup pour ta réponse rapide, malheureusement ce ne sont que des données sensibles je ne peux donc donner le fichier Excel, dans le pire des cas je peux peut être vous fournir une maquette de mon fichier.

Mais dans le cas ou on peut passer la matrice d'un tableau en argument et si quelqu'un sait comment faire, ça résout mon problème directement, quelqu'un à la solution?

Bien cordialement
Jeremy
 

Tibo

XLDnaute Barbatruc
Re : Passer la matrice en varible dans une Recherchev

re,

...dans le pire des cas je peux peut être vous fournir une maquette de mon fichier...

Ça n'est pas le pire des cas pour nous bien au contraire. Nous n'avons pas besoin du contenu confidentiel de ton fichier. Une maquette (suffisamment représentative de ton vrai fichier) avec quelques données diverses et en nous mettant le résultat attendu devrait nous suffire.

A te (re)lire avec ce fichier exemple.

@+
 

Tibo

XLDnaute Barbatruc
Re : Passer la matrice en varible dans une Recherchev

re,

J'ai quelque peine à bien cerner ta demande.

Il se peut effectivement qu'il ne soit pas possible de passer une matrice comme argument d'un RECHERCHEV

Mais peut-être y-a-t-il une solution avec d'autres fonctions que RECHERCHEV

D'où ma demande d'un fichier exemple.

Cela dit, je ne veux pas te forcer ... peut-être que d'autres que moi auront compris et qu'ils passeront t'apporter une réponse.

@+
 

gexjere

XLDnaute Nouveau
Re : Passer la matrice en varible dans une Recherchev

Re bonjours,

Comme promis, vous trouverez mon fichier excel joint.

Je vais faire ici les explications et je m’excuse par avance si c’est mal fait ^^ j’essaye de faire avec mes connaissances. Je tiens juste à préciser que je sais coder en VBA mais que j’essaye d’en faire le moins possible pour que ce soit compréhensible (pas mal de personne sont réfractaire au code …)

Donc vous trouverez dans mon fichier Excel 3 onglets :
Prix : qui permet d’afficher les prix (tableau hyper simplifié pour l’exemple mais il permet de bien mettre en avant le problème)
Save : c’est l’onglet qui me permet de venir faire une sauvegarde des prix à chaque fois qu’ils sont modifiés (le code et les macros ne sont pas dans le fichier car ce n’est pas un problème)
Info : c’est globalement l’onglet qui me permet de faire mes listes déroulantes et mes tables de correspondances pour les recherches v et h

Donc je vous explique, le but de ce fichier et de pouvoir faire une synthèse simplifié de la vrai usine à gaz de calcul de prix et de pouvoir voir rapidement les différentes variables sur un même tableau. Pour l’exemple je n’ai pris que les prix dans le tableau.

Actuel :
C’est maintenant qu’on attaque réellement le vrai problème, pour l’exemple, j’ai 8 références et 8 enseignes qui ont chacune des prix différents pour une même référence. Cela me fait donc 64 prix différents pour le mois de janvier.
Comment je fais pour afficher cela, j’utilise une première recherchev en D2 dans la feuille info qui cherche la référence choisi en D6 de la feuille « save » et je viens prendre la valeur de la colonne O. Etant donné qu’une recherchev ou h prend la première valeur qu’elle trouve même si 10 valeur sont les même à la suite, je crée moi même la valeur (avec le -9 et les +1 pour les autres références)

Une fois que j’ai ces valeurs je reviens dans ma page prix et je fais ma rechercheh de la cellule E10 dans le tableau save, je vais donc pouvoir prendre tous les prix pour toutes les références et toutes les enseignes mais il me manque le nombre de ligne à descendre pour avoir le bon prix et c’est la que la recherche v précédente me donne le nombre à descendre pour trouver mon bon prix :
=RECHERCHEH(Prix!$E$10;Save!$C$10:$M$88;RECHERCHEV(Prix!$D11;Info!$E$3:$F$10;2;FAUX);FAUX)

Cela fonctionne très bien pour le mois de janvier mais tout comme la recherchev précédente même si dans la feuille save contient 3 cellules qui s’appellent « prix » la rechercheh na va prend que la première valeur « prix » donc janvier… c’est impossible d’utiliser ce type de système pour avoir tous les prix de toute l’année. De plus celle solution est pour moi pas très « jolie » et trop aléatoire, une erreur est vite arrivée.

Solution 2 :
C’est la seule solution que j’ai trouvé, c’est de faire des « si » imbriqué les un dans les autres si C7 = janvier alors je prends le tableau de janvier, sinon si C7 = Février je prends le tableau de Février, sinon si C7 = Mars je prends le tableau de Mars.

Cette solution fonctionne mais elle ne me convient pas non plus cela fait beaucoup de si sachant que j’ai beaucoup de référence dans mon tableau original et beaucoup d’enseigne.

Solution 3 :
Cette solution est pour moi la plus facile et la plus sure, je fais une simple recherche h imbriqué dans une recherchev et je passe comme matrice dans ma recherche h le tableau en fonction de la cellule C7 (les mois) le problème c’est qu’Excel ne comprend pas que je veux passer la valeur de la cellule U10 et non pas comme tableau la cellule U10 elle-même.

Voila je pense avoir tout expliqué et rien oublié dans mon explication, j’espère que c’est un peu plus clair avec l’explication ^^

En cherchant un peu sur internet hier soir j’ai trouvé la recherche index + equiv mais je n’arrive pas non plus à passer la matrice du tableau en argument dedans.

Si vous avez une solution je suis preneur, sachant qu’il me reste au pire une autre solution en VBA ou je viendrais directement inscrire les formules dans les cellules E11 : E18 en fonction de la valeur de C7, mais j’aurais préféré éviter cette solution

En vous remerciant par avance pour la lecture de mon problème et pour les solutions que vous pouvez m’apporter.

Bien Cordialement
Jeremy
 

Pièces jointes

  • test.xlsx
    19.8 KB · Affichages: 38
  • test.xlsx
    19.8 KB · Affichages: 41
  • test.xlsx
    19.8 KB · Affichages: 47

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972