Indirect et zone nommée DYNAMIQUEMENT

vgendron

XLDnaute Barbatruc
Bonjour à tous,

j'ai un souci à vous soumettre.

j'utilise souvent des zones nommées définies de manière dynamique (avec fonction décaler)
dans le cas présent, je souhaiterai extraire le nieme élément (H4) de la zone dont le nom est en colonne G

je pensais que la fonction Indirect irait très bien.
=INDEX(INDIRECT(G6);$H$4) me renvoit #ref
alors que si je met le nom de la zone directement dans la formule
=INDEX(NomDyna;$H$4) ca va très bien..


maintenant. si je nomme la meme zone de facon statique (sans la fonction décaler): B2:B15
la fonction indirect va très bien.

j'en conclue que Indirect n'aime pas les zones nommées dynamiquement...

comment les réconcilier?
 

Pièces jointes

  • indirectZoneNommée.xlsx
    9.2 KB · Affichages: 48

job75

XLDnaute Barbatruc
Re : Indirect et zone nommée DYNAMIQUEMENT

Bonjour vgendron,

Quand il s'agit d'une plage nommée il n'y a bien sûr pas de problème.

Autrement il faudrait que INDIRECT évalue le nom défini, ce qu'elle ne fait pas.

Seule une macro VBA ou la fonction macro Excel 4.0 EVALUER peut le faire.

Fichier joint avec la feuille Macro1...

A+
 

Pièces jointes

  • indirectZoneNommée(1).xlsm
    16.9 KB · Affichages: 33

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Indirect et zone nommée DYNAMIQUEMENT

Bonsoir,

Un exemple de liste en cascade pour contourner l'incompatibilité de Indirect() avec les champs dynamiques.
On peut ajouter dynamiquement des items aux listes sans renommer les listes.

cf Listes en cascade avec Indirect() et listes dynamiques


JB


PS: Dans le cas soumis en #1, je ne vois pas l'intérêt du champ dynamique. Il suffit de définir des champs statiques avec 65000 lignes
 

Pièces jointes

  • DVIndirectDyn.xls
    38.5 KB · Affichages: 77
Dernière édition:

vgendron

XLDnaute Barbatruc
Re : Indirect et zone nommée DYNAMIQUEMENT

Hello

@JB: dans le cas présent, il n'y a certes aucun interet, c'est juste pour ma culture perso..
mais on peut y voir un interet dans le cas ou sur la meme feuille, j'ai deux tableaux l'un en dessous de l'autre.
donc, en mettant une liste statique de 65000 lignes +/-20000 ;-) je serais embeté pour mes listes.
quant à ton site.. il est dans mes favoris depuis un certain temps ;-).. une vraie mine d'or..

@job:
la fonction evaluer. mais bien sur ! enfin. presque.. ;-)
je suppose que c'est une fonction personnalisée - et protégée?
parce que dans le fichier que tu as joint: onglet "Macro1", tu as écrit:

Code:
=INDEX(EVALUER(G6);$H$6)
ce qui me retourne bien la valeur escomptée..
cette fonction n'est semble t il pas volatile.. mais evènementielle sur un double clic de la cellule..


sauf que si je souhaite utiliser cette fonction evaluer dans un autre onglet que Macro1.. il me jette..

par contre. il me propose la fonction Eval..?

en tout cas merci !
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Indirect et zone nommée DYNAMIQUEMENT

Bonjour,


>je serais embêté pour mes listes.

S'il s'agit de listes pour menu déroulant, on peut ne prendre que les éléments remplis avec :

=DECALER(INDIRECT(NomListeStatique);;;NBVAL(INDIRECT(NomListeStatique)))


JB
 
Dernière édition:

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 180
dernier inscrit
Vcr