[VBA] Appel d'une fonction, Paramarray

Fermé
essai145 - 11 mars 2008 à 15:41
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 11 mars 2008 à 17:20
Bonjour,

J'ai un problème sous excel. J'ai créé une fonction du type : fonction(paramarray tab())

Lorsque je l'appelle comme ceci : call fonction(valeur_1, valeur_2), ca marche

Mais lorsque je passe par un tableau auquel j'affecte les mêmes valeurs, ca ne marche plus.

Pouvez-vous m'aider ?

exemple :

------------------Dans un module séparé :---------------
sub ma_fonction(argument_1 As String, paramarray mon_tableau())
....
toto = Ubound(mon_tableau)
end sub

------------------Dans mon main----------------------------
Dim mon_Tableau(1) as Variant
mon_Tableau(0) = "valeur_1"
mon_Tableau(1) = "valeur_2"
arg_1 = "blablabla"
...
call ma_fonction(arg_1, mon_Tableau) ### ne marche pas ###

' alors que
' call ma_fonction(arg_1, "valeur_1", "valeur_2") marche !!!

L'erreur est qu'il me dit que Ubound(mon_tableau) = 0
Aparamment, il ne reconnait pas l'argument...

Comment lui faire comprendre ?

Merci d'avance pour votre aide

1 réponse

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
11 mars 2008 à 17:20
Bonjour,

Rajoute "As Variant" :

sub ma_fonction(argument_1 As String, paramarray mon_tableau()As Variant)

Ou bien :
sub ma_fonction(argument_1 As String, ByRef tableau() As mon_Tableau)

Mais pour ça il faut que mon_tableau soit déclaré dans la partie global du module.

;o)

polux
2