Comment mieux gérer les paramètres optionnels d'une procédure ?

Résolu
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 - 16 nov. 2011 à 17:55
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 - 17 nov. 2011 à 01:00
Bonsoir le Forum,

Je cherche à créer une procédure personnelle qui peut être appelée avec des paramètres optionnels. Sauf que je ne parviens pas à l'appeler de manière correcte si mon paramètre optionnelle n'est pas présent.

Comment s'y prends t'ont ?

Voici le code que je veux utiliser :

Sub Macro1()

Call MISEENFORME(Range("B2:E20"))

End Sub

'--------

Sub MISEENFORME(Optional Tableau As Range)

End Sub


Si j'appelle MISEENFORME sans lui donner un range en entrée alors sa plante car Tableau n'est pas définit (Normal il est optionnel justement !!!)


Des conseils ? j'ai essayer "If Isnull(Tableau) Then" mais ça ne marche pas. J'ai également essayer "On error resume next" mais je ne parviens pas à en tirer quoi que ce soit.

Merci pour vos lumières.

André

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 236
16 nov. 2011 à 18:17
pardon (balises ratées) :
Private Sub CommandButton1_Click()
  MISEENFORME Range("B2:E20")
  MISEENFORME
End Sub

Sub MISEENFORME(Optional Tableau As Variant)
  If IsMissing(Tableau) Then
    MsgBox "pas d'argument tableau"
    Exit Sub
  Else
    MsgBox Tableau.Address
    End If
End Sub 


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 236
16 nov. 2011 à 18:15
Bonjour,

ainsi (exemple):

Private Sub CommandButton1_Click()
MISEENFORME Range("B2:E20")
MISEENFORME
End Sub

Sub MISEENFORME(Optional Tableau As Variant)
If IsMissing(Tableau) Then
MsgBox "pas d'argument tableau"
Exit Sub
Else
MsgBox Tableau.Address
End If
End Sub

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
17 nov. 2011 à 01:00
Merci pour le tuyau Ucfoutu, ça marche très bien.

C'est cool.

André
0