Bonjour,
J'essaye de me mettre au VBA et pour un exemple simple, qu'il suffit de recopier, je tombe sur une erreur #Valeur que je n'arrive pas à comprendre :
Calcul de factorielle par boucle et par récursivité.
Nombre entré en C3
Résultat du calcul par boucle en C5, ça marche.
Résultat du calcul par récursivité en C8 et j'obtiens l'erreur ci-dessus.
En C3 j'ai l'expression: =Factorielle_boucle(C3)
La fonction Factorielle_boucle(Nb) est :
En C8 j'ai =Factorielle_recursive(C3) dont le code est :Code:Function Factorielle_boucle(Nb As Long) As Long Nb = Range("C3") Factorielle_boucle = 1 For i = 1 To Nb Factorielle_boucle = Factorielle_boucle * i Next i End Function
Et là ça coince.Code:Function Factorielle_recursive(Nb As Long) As Long Nb = Range("C3") If Nb = 0 Then Factorielle_recursive = 1 Else Factorielle_recursive = Factorielle_recursive(Nb - 1) * Nb End If End Function
Que se passe-t-il docteur ?
-----