utiliser le contenu d'une cellule comme nom de plage "dynamique" dans une formule

cooldidi

XLDnaute Nouveau
Bonjour,

Dans la pièce jointe, il y a la feuille PLageNom qui contient un tableau de 2 colonnes et 3 lignes.
Cette plage est une fois nommée avec une référence directe (=Table1) et une fois avec une référence "dynamique" via la fonction DECALER (Table1Dyn)

Dans la feuille recherche, j'utilise la fonction recherchev.
Si pour le 2ème paramètre de ma formule je tape le nom de ma plage cela marche sans problème.
Par contre si le nom de ma plage est dans une cellule et que j'y fais référence via la fonction indirect, ma formule marche pour Table1 mais pas pour Table1Dyn.

Est-ce quelqu'un aurait une explication ou une manière de contourner ce problème?

Merci d'avance,
 

Pièces jointes

  • RechercheV-PlageDynamique.xlsx
    8.8 KB · Affichages: 29

Modeste

XLDnaute Barbatruc
Re : utiliser le contenu d'une cellule comme nom de plage "dynamique" dans une formul

Bonjour cooldidi,

C'est comme dans les histoires de couples :) il y a parfois incompatibilité "d'humeur". C'est le cas pour les plages (nommées avec DECALER), lorsqu'on y fait référence avec INDIRECT ... il n'y a rien à faire, à part s'en souvenir et trouver comment contourner le problème.

Si j'ai bien compris, rien ne t'empêche d'écrire quelque chose comme:
Code:
=RECHERCHEV(A4;DECALER(PlageNom!$A$1;0;0;NBVAL(PlageNom!$A:$A)-1;2);2;FAUX)
... Reste à voir pourquoi précisément tu voulais utiliser INDIRECT (ce qui ne saute pas aux yeux dans ton court exemple :confused:)
 

cooldidi

XLDnaute Nouveau
Re : utiliser le contenu d'une cellule comme nom de plage "dynamique" dans une formul

Bonne nouvelle ma formule était correcte mauvaise nouvelle y a pas vraiment de solutions...

Dans la pratique je n'aurais pas une une plage nommée mais des dizaines susceptibles de voir leur taille changée au cours du temps d'où l'intérêt d'avoir une référence "dynamique".

On peut considérer ces tables comme des clés de répartition de charges entre différents services d'une entreprise. Une table contiendrait les m² occupés par chaque service (transformés en % pour que le total fasse 100)%, une autre le nombre de travailleurs, le coût des travailleurs, le nombre de travailleurs de plus de 45 ans etc.

Dans ma feuille de recherche je devrais avoir des centaines de lignes (qui contiennent par exemple des dépenses, colonne A=libellé, colonne B= montant) et l'idée est qu'à chaque ligne et donc à chaque dépense je peux choisir la clé de répartition (colonne C) que je veux voir appliquer. Les colonnes suivantes (D, E, F) contiendraient tous les services possibles et je calculerais la dépense à imputée à chaque service sur base de la formule: MontantDepense x recherchev(service_repris_dans_en_tete_colonne, NomCleRepartition_renseigne_dans_colonneC,2,faux)
 

Modeste

XLDnaute Barbatruc
Re : utiliser le contenu d'une cellule comme nom de plage "dynamique" dans une formul

Re,

Bonne nouvelle ma formule était correcte
Ah ça, je ne l'ai pas dit ;) il suffit parfois d'un petit rien!

mauvaise nouvelle y a pas vraiment de solutions...
Ah mais je n'ai pas dit ça non plus! :eek:

Un extrait du fichier, sans données confidentielles aiderait à "visualiser"! Avec ce que tu nous livres là, on ne pourrait pas "jouer" avec INDEX / EQUIV??
Comme tu es maintenant en XL2010, tu peux aussi nommer chaque plage "en dur", puis la convertir en Tableau (Insertion > Tableau) et la plage sera dynamique aussi!
 

cooldidi

XLDnaute Nouveau
Re : utiliser le contenu d'une cellule comme nom de plage "dynamique" dans une formul

J'ai pas vraiment de fichiers encore abouti à proposer puisque j'en suis qu'au stade de la réflexion.

Je pourrais effectivement travailler avec une belle matrice à double entrée pour mes clés de répartition.
Chaque ligne représenterait un service et chaque colonne une clé de répartition possible => index/equiv me permetterait de retrouver la valeur du % de répartition à appliquer.

Je dois juste construire cette matrice et là ca revient un peu au début de mon problème à savoir que pour compléter la colonne 4 de ma matrice (ex: clé de répartition basé sur les m²) je devrais faire un recherchev pour trouver dans ma source d'origine les clefs que je veux utiliser.

Par contre une manière de contourner le problème initiale (incompatibilité indirect+Plagedéfinie avec DECALER) est de donner comme référence à ma plage(A:C) c'est pas très propre mais j'ai pas de surprise si des lignes s'ajoutent... L'utilisation de la notion de tableau dans Xl2010 peut également résoudre le problème...

Je crois que j'ai assez d'outils pour m'en sortir...

Merci beaucoup,
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof