Renvoi d'une masortingce / masortingce dans Excel VBA à partir d'une fonction définie par l'user

Je suis nouveau dans Excel VBA et il est depuis 5 ans que j'ai déjà fait une VBA. J'ai écrit une UDF pour faire une régression de base, mais je ne peux pas l'get pour afficher une série de valeurs régressées. Je sélectionne la plage que je souhaite afficher ainsi et appuyez sur crtl + shift + enter, mais cela ne fonctionne pas. J'ai essayé quelques choses différentes, mais rien ne fait l'affaire. Voici ma dernière tentative:

Function REGRESSMEDIAN(x As Range, y As Range) As Double Dim slope As Double, intercept As Double, count As Integer count = x.count Dim lny() As Double, regression() As Double ReDim lny(1 To count), regression(1 To count) Dim i As Integer For i = 1 To count lny(i) = Application.WorksheetFunction.Ln(y(i)) Next i slope = Application.WorksheetFunction.slope(lny, x) intercept = Application.WorksheetFunction.intercept(lny, x) Dim j As Integer For j = 1 To count regression(j) = Exp(slope * x(j) + intercept) Next j REGRESSMEDIAN = regression End Function 

Cette fonction de test:

 Function tester() tester = Array("a", "b", "c") End Function 

fonctionnera bien comme UDF tant que vos 3 cellules de sortie sont en ligne, pas dans une colonne . S'ils sont dans une colonne, vous verrez "a" dans les 3 cellules.

entrez la description de l'image ici

Si vous essayez de mettre la sortie dans une colonne, cela fonctionnera:

 Function tester() tester = Application.Transpose(Array("a", "b", "c")) End Function 

entrez la description de l'image ici