Merci pour vos retour.
@jpcheck:
Je connais se tutoriel mais dans mon cas je veux rester avec des variables typées (j'aurais du le préciser !).
Pas de type Variant et d'utilisation de IsMissing si c'était ton propos.
@rdurupt:
Je ne te suis pas non plus...
Dans ton exemple Optional WkbToOpen As Excel.Optional ! Pourquoi veux tu récupérer un Optional Workbook alors que c'est justement ça qu'il faut lui fournir!
Ce n'est pas comme si tu utilisais un fonction qui retourne un objet, et que de paramètres optionnels de type string te permutais de switcher l'objet retourné!
Je vais exprimer mon exemple différemment via 2 fonctions...
Function OpenAndSetMyWkb(FullName As String) As Excel.Workbook
Function OpenWkbAndSetWorksheet(FullName As String) As Excel.Worksheet
L'exemple de mon premier POST permet de regrouper les 2 fonctions ci-dessous en 1 seule procédure.
Par contre, cette procédure affecte le classeur et la feuille aux variables qui sont dans ces 2 paramètres alors que le code appelant peut en indiquer 0, 1 ou 2 (vu qu'ils sont optionnels !). La question est : comment cela est géré et quelles sont les éventuels problèmes liés à cette méthode.
@eriiic:
De toute façon tu n'as pas la main sur le garbage collection, pas d'autre choix que de lui faire confiance pour les variables.
Il n'y a que les objets que tu peux mettre à nothing.
Effectivement, c'est le rôle du garbage d'identifier que la variable doit être détruite en mémoire mais j'aurais bien voulu m'assurer de ce comportement et vérifier que c'est le seul problème possible...
Par rapport à ton complément :
Optional WksToSet As Excel.Worksheet = Activesheet
J'ai déjà pensé à cela mais ce n'est pas possible car les valeurs par défauts doivent être des constantes !
Partager