Référence à fonction personnalisée d'une autre feuille

bbr13

XLDnaute Nouveau
Bonjour,

J'utilise Excel 2013 et je rencontre un problème d'utilisation de fonction personnalisée.

J'ai une fonction personnalisée dans la feuille 1 qui renvoie une valeur de cette feuille:

feuille 1: A1 contient la valeur "A"
feuille 1: =test(A1)

feuille 2: =A1 contient la valeur "B"
feuille 2: =Feuil1!A2 -> non stable

Lorsque je modifie la valeur de Feuil2!A1 ("B"), la cellule Feuil2!A2 devient égale à Feuil2!A1 ("B") au lieu de renvoyer la valeur de Feuil1!A2 ("A").

Ma fonction:
Function test(Valeur)
Application.Volatile
test = [A1]
End Function

Si vous connaissez la réponse, merci de m'aider à résoudre ce problème.

Bruno
 

Pièces jointes

  • Fonction personnalisée TEST.xlsm
    13.6 KB · Affichages: 17
  • Fonction personnalisée TEST.xlsm
    13.6 KB · Affichages: 19
  • Fonction personnalisée TEST.xlsm
    13.6 KB · Affichages: 19

Dranreb

XLDnaute Barbatruc
Re : Référence à fonction personnalisée d'une autre feuille

Bonsoir.

Pourquoi voudriez vous, même si c'est dans une autre feuille que se trouve la formule utilisant cette fonction, que celle ci évalue un autre [A1] que celui de la feuille active ?
Dans une fonction destinée à être utilisée dans des formules, d'une façon générale je vous déconseille d'utiliser autre chose que ce qui lui est passé en paramètres.
 

job75

XLDnaute Barbatruc
Re : Référence à fonction personnalisée d'une autre feuille

Bonsoir bbr13, Bernard,

Code:
Function test(Valeur As Range)
test = Valeur
End Function
Pas besoin de Application.Volatile

Edit : salut JM.

A+
 
Dernière édition:

bbr13

XLDnaute Nouveau
Re : Référence à fonction personnalisée d'une autre feuille

En fait:

1. Ma fonction dans la première feuille contient en réalité une fonction lookup:

Static Function Traduction(Position)
Application.Volatile
Traduction = (WorksheetFunction.HLookup([A1], Range("C3:E13"), Position, False))
End Function

Cette fonction me permet de sélectionner un élément dans une liste en fonction de la cellule C1.


2. Je veux dans la deuxième feuille simplement récupérer dans E1 la valeur de la cellule D1 de la première feuille.

Si ça ne peut pas marcher, j'écrirai les formules dans les cellules sans utiliser de fonction, mais je trouvais cela élégant.

Merci de regarder.
Bruno
 

Pièces jointes

  • Fonction personnalisée TEST - 2.xlsm
    14.1 KB · Affichages: 14

Dranreb

XLDnaute Barbatruc
Re : Référence à fonction personnalisée d'une autre feuille

Ça ne peut pas marcher sans préciser Feuil1.[A1], Feuil1.Range("C3:E13")
Même ainsi, ce n'est guère élégant à mon avis, ça ne fait que brouiller les pistes.

P.S. En effet, j'y pensais aussi, Application.Caller.Parent permet aussi d'avoir la feuille contenant la cellule où est invoquée la fonction, comme le souligne Job75
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Référence à fonction personnalisée d'une autre feuille

Re

bbr13
Tu m'ignores volontairement ?
ou tu ne m'as pas vu passé dans ton fil ?
Ou tu ne réponds pas à toutes les questions que l'on te pose ?

NB: J'ai pris ma douche et mon hygiène buccale est correcte, ce donc n'est pas la cause de cette transparence de mes messages dans ton fil ;)
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

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