Fonction avec argument facultatif

Bonjour le forum,

Après de nombreuses recherches infructueuses sur le sujet, je suis confrontée à un problème (mineur à mon avis ...) concernant une procédure qui comporte un argument facultatif. Lorsque j'appelle cette procédure sans l'argument facultatif, je reçois le message d'erreur "Erreur définie par l'application ou par l'objet". Ainsi, l'ordinateur ne semble pas reconnaître que l'argument est facultatif. Cette procédure fait juste des copier-coller de données, rien de fou.

Si quelqu'un a une idée, je suis preneur. Vous trouverez ci-joint un fichier d'exemple.

Voici un extrait de code pour la procédure :

Private Sub Transfert(NomFeuille$, plage_D$, plage_A$, plage_new_year$, plage_new_year_moins_1$, Optional plage_0 As String = Empty)

    If IsMissing(plage_0) Then  'si on ne donne pas de valeur facultative
        Sheets(NomFeuille).Range(plage_D).Copy Range(plage_A)
        Sheets(NomFeuille).Range(plage_new_year) = Range(plage_new_year_moins_1$) + 1
    Else 'Si on nous donne une valeur facultative
        Sheets(NomFeuille).Range(plage_D).Copy Range(plage_A)
        Sheets(NomFeuille).Range(plage_new_year) = Range(plage_new_year_moins_1$) + 1
        Sheets(NomFeuille).Range(plage_0).Value = 0
    End If

End Sub

Merci mille fois par avance !

12argfacultatif.xlsm (20.42 Ko)

bonjour,

Ton argument n'est jamais omis car tu définis une valeur par défaut (= Empty)

Donc la macro va directement dans le Else.

Si tu veux tester isMissing il faut déclarer

..., Optional plage_0 As String) 

A+

Bonjour Galopin01,

Toujours un plaisir de vous retrouver :) Je vous remercie pour votre réponse. J'avais déjà testé ça, et ça ne fonctionnait pas non plus .. la preuve en pièce jointe ! Je ne comprends vraiment pas où est le problème ...

NB: Je suis en train de lire votre réponse sur l'autre fil. Merci également.

37argfacultatif.xlsm (20.22 Ko)

Effectivement il ne faut pas la typer.

..., Optional plage_0 'suffira !

A+

Mille mercis ! :) :)

Rechercher des sujets similaires à "fonction argument facultatif"