[Excel] Fonction INDIRECT et réf calculée

Fermé
grob - Modifié par grob le 8/09/2011 à 17:27
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 9 sept. 2011 à 00:38
Bonjour,

je travaille sur un fichier où j'ai besoin de taux de change.
J'ai donc nommé une cellule "EURUSD" avec l'EURUSD et j'ai créé une autre référence USDEUR = 1/EURUSD.

Je peux utiliser ces références directement. Si j'inscris "=USDEUR" dans une cellule j'obtiens le résultat attendu.
Si je fais une référence via la fonction INDIRECT à l'EURUSD, j'obtiens le bon résultat également.
Par contre, si j'ai le texte USDEUR dans une cellule, la fonction INDIRECT ne fonctionne pas.
En lisant l'aide, je n'ai pourtant pas l'impression que la référence doive nécessairement être à une cellule nommée ? Suis-je obligé de créer cette cellule pour la nommer, ou puis-je obtenir le résultat plus directement comme je le voulais, peut-être en passant par une autre fonction ?
Merci,

grob
A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 8/09/2011 à 17:41
Bonjour
on essaie de comprendre (!)
vous avez une cellule avec un taux, nommée EURUSD
vous en avez une autre nommée USDEUR qui comporte la formule :=1/EURUSD

reste à savoir quel est le libellé exact que vous utilisez pour la fonction INDIRECT qui ne convient pas?
et en même temps celui qui convient
à vous lire

crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
Désolé si je n'ai pas été clair.
J'ai effectivement une cellule nommée USDEUR.
Par contre, j'ai une référence EURUSD = 1/USDEUR qui n'est pas une cellule nommée (j'ai simplement défini ce nom pour le calcul "=1/USDEUR ").

Maintenant, si j'écris en A1 par exemple le texte "USDEUR" puis dans une autre cellule "=INDIRECT(A1)", bien sûr, cela fonctionne.
Par contre, si j'écris en A1 "EURUSD", la fonction indirect ne fonctionne plus. Pourtant, j'ai vérifié que si j'écris directement dans une cellule "=EURUSD", cela fonctionne correctement.

J'en déduis, peut-être à tort, que la fonction indirect pointe nécessairement vers une cellule nommée, et non vers une référence à un calcul ?
Si INDIRECT pointe bien nécessairement vers une cellule, existe-t-il une fonction équivalente qui pointe vers une référence directement ?

Merci de votre aide, j'espère avoir été plus clair !

Cdt,
grob
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
8 sept. 2011 à 18:17
Je pense avoir compris, mais je doute fortement:

si vous ne nommez la cellule EURUSD avec le nom que vous placez en A1, INDIRECT ne fonctionnera évidemment pas, puisque cet EURUSD n'est rien pour excel (? c'est là que votre problème m'échappe un peu)

Nommer votre cellule comportant 1/USDEUR avec le nom EURUSD et cela devrait marcher, ou alors faites directement référence sans indirect à la cellule comportant la formule 1/USDEUR.




Crdlmnt
0
Je ne dois décidément pas être clair :-) et je m'en excuse.

En fait, je n'ai pas inscrit cette formule dans une cellule, mais en faisant Définir Nom>"EURUSD" puis "=1/USDEUR" dans "fait référence à".
Donc c'est bien une référence nommée, mais pas une cellule nommée.

Merci de votre patience,
grob
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
8 sept. 2011 à 19:01
cette fois j'ai compris et je fais le même constat, mais je n'ai npas l'explication. Mais npourquoi ne pas nommer EURUSD cette cellule qui donne =1/USDEUR ??
puiqu'après cela fonctionne?
crdlmnt
0
C'est ce que je ferai s'il n'y a pas de fonction adaptée et c'est vrai que ça ne me change pas fondamentalement les choses, sinon que je préférais éviter de la réécrire pour éviter d'éventuelles réécritures accidentelles par un utilisateur.
Merci en tous cas d'avoir pris le temps de lire et d'y réfléchir.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
9 sept. 2011 à 00:38
Bonsoir,

indirect() veut comme paramètre une référence.
Un nom qui fait référence à une référence reste une référence (tu suis ? ;-)), donc indirect() est content.
Un nom qui fait référence à une formule n'est pas une référence, ça ne fonctionne pas.

eric
0