Public values() As Double Function MemFibonacci(ByVal n As Double) As Double If Nonexistent(n) Then Select Case n Case Is <= 1 MemFibonacci = n Case Else MemFibonacci = MemFibonacci(n - 1) + MemFibonacci(n - 2) End Select Call WriteValue(n, MemFibonacci) Else Return ReadValue(n) End If End Function Private Function Nonexistent(ByVal n As Double) As Boolean If n > UBound(values) Then Nonexistent = True ElseIf n > 0 And values(n) = 0 Then Nonexistent = True Else Nonexistent = False End If End Function Private Sub WriteValue(ByVal n As Double, ByVal Value As Double) Static Values(n) Values(n) = Value End Sub 'Fonction de lecture des entrées dans le tableau de sauvegarde Private Function ReadValue(ByVal n As Double) As Double Return values(n) End Function