JaGu
XLDnaute Nouveau
Bonjour à tous.
Un problème que je dois pas être le seul à n'avoir pas réussi à résoudre : dans une fonction vba, je définis et calcule plein de variables. En retour de cette fonction, j'aimerai bien avoir la valeur d'une de ces variables calculées.
En faisant simplifiant à l'extrême, cela donnerait le code suivant :
------------------------
Function test(x1, x2, x3, sortie)
y1 = x1
y2 = 2 * x2
y3 = 3 * x3
Select Case sortie
Case "y1": test = y1
Case "y2": test = y2
Case "y3": test = y2
Case Else
End Select
Mais en réalité, il y a plus d'une centaine de variables calculées ... ce qui ferait un bloc select assez lourd et ingérable dès qu'une nouvelle variable est introduite dans la fonction.
L'idée serait de pouvoir faire passer le nom de la variable voulue dans le variable "sortie", (par exemple sortie="y2") et de l'envoyer dans la fonction. Ca donnerait :
------------------------------
Function test(x1, x2, x3, sortie)
-----------------------------
Quelqu'un a déjà trouvé comment procéder ?
Un grand merci !
Un problème que je dois pas être le seul à n'avoir pas réussi à résoudre : dans une fonction vba, je définis et calcule plein de variables. En retour de cette fonction, j'aimerai bien avoir la valeur d'une de ces variables calculées.
En faisant simplifiant à l'extrême, cela donnerait le code suivant :
------------------------
Function test(x1, x2, x3, sortie)
y1 = x1
y2 = 2 * x2
y3 = 3 * x3
Select Case sortie
Case "y1": test = y1
Case "y2": test = y2
Case "y3": test = y2
Case Else
End Select
End Function
-----------------------------
Mais en réalité, il y a plus d'une centaine de variables calculées ... ce qui ferait un bloc select assez lourd et ingérable dès qu'une nouvelle variable est introduite dans la fonction.
L'idée serait de pouvoir faire passer le nom de la variable voulue dans le variable "sortie", (par exemple sortie="y2") et de l'envoyer dans la fonction. Ca donnerait :
------------------------------
Function test(x1, x2, x3, sortie)
y1 = x1
y2 = 2 * x2
y3 = 3 * x3
test = sortie '(c'est là que ça coince ... !o)
End Functiony2 = 2 * x2
y3 = 3 * x3
test = sortie '(c'est là que ça coince ... !o)
-----------------------------
Quelqu'un a déjà trouvé comment procéder ?
Un grand merci !