xavier roguiez a écrit :
Bonsoir

Je suis à la recherche de pistes pour gérer proprement les erreurs sous Calc. J'ai un ensemble de fonctions qui s'appellent les unes les autres en cascade.

Dans la fonction de bas niveau, je réalise un test voici un ECM

function fcm(byval fck as double) as variant
'résistance moyenne en compression à 28 jours
'entrée fck : MPa, sortie : fcm : MPa
if (fck <=90) then
   fcm=fck+8.
else
   fcm="": MsgBox("fck > C90/100 (EC2-3.1.2(2)P",16): stop
end if
end function

Au niveau de fcm, ça fonctionne correctement. Si je fais dans une cellule sous calc =fcm(94), j'ai la boite d'alerte correcte.
Ensuite au niveau des fonctions appellantes, j'ai codé :

On error GoTo errDeroulement
   temp=fcm(fck)
exit function
'%% gestion des erreurs %%    errDeroulement:
   if (err = 9) then
       MsgBox("Plantage à partir de test",16): testFCM="": stop
   endif
   Resume Next   end function


Y a t il un moyen de procéder différemment, je ne sais pas si associer cette erreur 9 au dépassement de ma variable est une bonne idée ?

D'avance merci pour toute information

xavier roguiez

Je pense qu'une définition plus large des cas d'erreurs peut être préférable.
Par exemple :
errDeroulement:
        Select case Err
                Case 7 'Mémoire insuffisante
                        MsgBox("Plantage à partir de test",16)
                        testFCM=""
                        Stop
                Case 9 'Indice hors limite
                        MsgBox("Plantage à partir de test",16)
                        testFCM=""
                        Stop
                Case Else 'autre erreur on tente la poursuite ;)
                        MsgBox "Erreur " & Err & ": " & Error$
                        Resume Next
        End Select

Francois

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à