Fonction - appel a une macro comp. [Excel] - VB/VBA/VBS - Programmation
MarshPosté le 07-02-2006 à 17:09:47
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
Marsh Posté le 07-02-2006 à 17:09:47
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