Bonjour,
Oui je sais qu'il y a des petites rallonges ou erreurs, je ne code pas dans ce langage habituellement (vous l'aurez remarqué).
Effectivement cela n'a pas du tout marché en fin de compte. Mais j'ai finalement trouvé comment régler mon problème. Je fixe mes valeurs dans une colonne (A disons) et pour accéder à A(i) dans mon code, j'utilise :
valeur_A_i= Worksheets("Feuille").Range("A" & i).Value
Je n'ai donc plus à envoyer d'argument de type A1:A192 à la fonction. Cependant, si un jour mes valeurs sont dans B, cela ne marche plus, et je ne sais pas comment faire autrement de façon générale.
Voici finalement ma fonction qui marche (vérifié), mes deux colonnes de données sont en B et F :
Function f(n As Double, q As Double, R As Double, d As Double)
Dim p As Double
Dim s As Double
Dim x As Double
x = 0
For i = 2 To n
p = Worksheets("Feuil1").Range("B" & n).Value
s = Worksheets("Feuil1").Range("F" & i - 1).Value
x = x + q ^ (n - i) * (R * p + d * s)
Next
x = x + q ^ (n - 1) * (R + d) * p
f = x
End Function
Si vous savez comment faire ça de façon plus générale, c'est à dire par exemple, si mes colonnes sont en B1:B192, envoyer vector_range=B1:B192 à la fonction et la syntaxe pour avoir la valeur de vector_range_i dans le code, je suis preneur.
Autrement dit : transformer une plage de valeurs quelconque (comme B1:B192) en un vecteur utilisable dans le code : vecteur (i)=valeur de Bi
Merci