valuer d'un Arguement facultatif dans une procédure fontion

  • Initiateur de la discussion Bruno
  • Date de début
B

Bruno

Guest
Bonjour à tous et toutes,

Dans une précédure fonction que je crée, je désigne un argument facultatif qui ne nomme Numero_facture. Si l'argument est absent , la valeur d'erreur retournée est value. Je voudrais dans ce cas laisser un blanc.

J'ai essayé d'attribuer la valeur par défaut dans la fonction comme ceci :
Function ANNEEFACT(Optional Numero_facture As String = "")
mais sans succés.

Avez vous une idée pour palier à ce problème ?

Merci de votre aide et bonne journée...


Voici le code pour plus de clarté :

Function ANNEEFACT(Optional Numero_facture As String)
Num = Application.WorksheetFunction.Trim(Numero_facture)
Num = Format(Numero_facture, "00000000")
Num = Left(Num, 2)
Num = DateSerial(Num, 1, 1)
ANNEEFACT = Year(Num)
End Function
 
A

Arnaud

Guest
salut,

extrait de l'aide vba :

Les arguments facultatifs sont précédés du mot clé Optional dans la définition de la procédure. Vous pouvez également préciser une valeur par défaut pour l'argument facultatif dans la définition de la procédure. Par exemple :

Sub OptionalArgs(strState As String, Optional strCountry As String = "USA")
. . .
End Sub
 
B

Bruno

Guest
Re: valeur d'un Argument facultatif dans une procédure fontion

Merci Arnaud de ton aide

Mais j'ai essayé cette solution avant de faire appel au experts(comme l'indiqué mon premier message) mais cela ne marche pas.

Si tu as d'autres infos.
 
Y

Yeahou

Guest
Salut Bruno, le forum

essaye cela

Function ANNEEFACT(Optional Numero_facture As String)
If Numero_facture = "" Then ANNEEFACT = "": Exit Function
Num = Application.WorksheetFunction.Trim(Numero_facture)
Num = Format(Numero_facture, "00000000")
Num = Left(Num, 2)
Num = DateSerial(Num, 1, 1)
ANNEEFACT = Year(Num)
End Function

cela devrait fonctionner

A+
 
B

Bruno

Guest
Bonjour Yeahou
Ca marche très bien.
Mille merci Yeahou !

Mais je voudrais bien savoir pourquoi en précisant la valeur pas défaut dans la définition de variable

comme ceci : Function ANNEEFACT(Optional Numero_facture As String = "")

cela ne fonctionne pas .

On va pas chipoter

merci à tous

bye

bruno
 

Statistiques des forums

Discussions
312 504
Messages
2 089 072
Membres
104 018
dernier inscrit
Mzghal