Bonjour, tout est presque dans l'intitulé...
J'ai construit une librairie fortran générée avec g95 pour windows (http://www.fortran.com/the-fortran-c...dows-download/)
j'ai compilé et assemblé la dll ainsi :
g95 -fno-underscoring -mrtd -c -g *.f
g95 -shared -o lalib.dll *.o
j'ai ensuite créé des fonctions VBA qui permettent de 'binder' les fonctions fortran.
Voici un exemple de déclaration de ces fonctions de binding
Public Declare PtrSafe mafonction Lib "H:\lalib.dll" (M As Long, N As Long, T As Double) As Double
...et un exemple d'implémentation de cette fonction de binding
1 2 3
| Function my_function(M As Long, N As Long, T As Double) As Double
my_function = mafonction(M, N, T)
End Function |
Ensuite, je peux ecrire des formules dans le tableur du type " =my_function(P4;P5;Q3) " et ça fonctionne bien...
SAUF QUE, selon les valeurs passées en arguments, ces fonctions fortran sont suceptibles de renvoyer des valeurs "Infinity" (du moins, c'est ce qu'elles produisent dans un cas fortran 'pur').
Cette valeur met en défaut VBA et Excel plante totalement...
Avez-vous une idée de la façon dont on peut contrôler cette valeur spéciale ?
Merci d'avance
Partager