Bonjour à tous,
J'ai passé plusieurs heures à chercher comment éviter cette erreur 2029 du compilateur VBA. Je ne m'y connais pas, alors j'ai fouiné sur les forums et tutos excel, qui m'ont bien aidé, mais là je bloque, alors je cède et vous poste ce message.
J'ai un fichier Excel, dont une cellule contient "=retroerf(1)". A l'evaluation de cette cellule le fonction se bloque
Je l'ai mis dans un Module du classeur. ERF() est une fonction des macros complémentaires d'excel "outils d'analyse".
NB : si je remplace "ERF(tmoy)" par "ERF(5)" la fonction marche, si ça peut vous aider ...
Public Function retroerf(x)
' ### Paramètres resol pour la précision et maxinit
resol = 0.01
maxinit = 10
' ###
retroerf = recur(x, 0, maxinit, resol)
End Function
Function recur(y, min, max, resol)
tmoy = (min + max) / 2
erfmoy = Application.Evaluate("ERF(tmoy)" ) ' ICI CA MET Error2029 dans erfmoy
If Abs(y - erfmoy) < resol Then
recur = tmoy
Else
If erfmoy > y Then
tmax = tmoy
tmin = min
Else
tmax = max
tmin = tmoy
End If
recur = recur(y, tmin, tmax, resol)
End If
End Function