christianwtd a écrit :
Je cherche à faire une fonction perso dans Calc et je bute sur les paramètres optionnels. Pour faire simple, un exemple... simple :

Function Bidon(Param1, Param2)
   Bidon = Param1 + Param2
End Function

peut-être, d'après ce que j'ai pu lire :
(mais non testé)

Function Bidon (Param1, Optional Param2)
  Dim Resultat as Variant
  If IsMissing(Param2) Then
    Resultat = Param1
  Else
    Resultat = Param1 + Param2
  End If
  Bidon = Resultat
End Function


Dans Calc, je fais :
=BIDON(10; 20)
et j'ai en retour 30. OK, ça marche. Mais si je souhaite le 2ème paramètre en option et que j'entre :
=BIDON(10)
J'ai droit à une erreur : Runtime error BASIC. L'argument n'est pas facultatif. Donc je me dis que je vais tester avec :
IsMissing(Param2)
Ca ne marche pas. Même erreur.

Donc je vais tester avec :
On Error Goto TraiteErreurs
et je fais faire :

Function Bidon(Param1, Param2)
   On Error Goto TraiteErreurs
   Bidon = Param1 + Param2
   Exit Function
   '
   TraiteErreurs:
   Resume Next
   Return
End Function


Cette fois ci plus d'affichage de résultat. Je teste donc :

Function Bidon(Param1, Param2)
   On Error Goto TraiteErreurs
   Bidon = Param1 + Param2
   Exit Function
   '
   TraiteErreurs:
   Param2 = 0
   Resume Next
   Return
End Function

Encore une déconvenue. La fonction s'arrête à Param2=0 et donc pas de résultat.

Je tourne en rond. Je pense que j'ai raté quelque chose, mais avant de commencer à taper méchamment sur le clavier, peut-être avez-vous la solution.

le "Optional" devant Param2 ?


D'avance merci,

Bon surf,
Christian


Lionel, débutant en macros.


--
      E    CAM       Lionel Corgnet,
   _V=/\   /\____    technicien cycle de l'association Vélocampus,
  /  /\ \S/ /\  \P   administrateur des systèmes et du réseau,
 (  O  ) L (  U  )   défenseur des gnus et des pingouins,
  \___/     \___/    et... cycliste urbain nantais.

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

Répondre à