Renvoyer un tableau

konyaliseref Messages postés 35 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 20 juillet 2005 - 7 juil. 2005 à 09:22
konyaliseref Messages postés 35 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 20 juillet 2005 - 7 juil. 2005 à 13:58
pour renvoyer un tableau avec une fonction, jai essayé la syntaxe suivante mais ca marche pas :

function blabla() as string()
dim sTableau() as string
ici je remplit mon tableau
blabla = sTableau()
end function

et je recupere le tout comme ca

for each valeur in sTableau()
tralala
next

et la erreur sur "valeur" !!!! "compile error : For Each control variable on arrays must be Variant"

de laide !!!!!

C* Konyali$eref C*
-------------------->

4 réponses

cs_phil23 Messages postés 79 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 14 juillet 2005 1
7 juil. 2005 à 10:17
La fonction qui retourne le tableau est juste:

Private Function blabla() As String()
Dim sTableau() As String

'Remplir
ReDim sTableau(2)
sTableau(0) = "aaa"
sTableau(1) = "bbb"
sTableau(2) = "ccc"

'Retourne le tableau
blabla = sTableau()

End Function

Le message d'erreur veut dire que si tu veux faire un for each sur un tableau du doit avoir une variable de type Variant:

Dim Tableau() As String
Dim sChaine As Variant


Tableau() = blabla()

For Each sChaine In Tableau()
MsgBox sChaine
Next

Pour ma part, je préfère utiliser une boucle For:

Dim Tableau() As String
Dim i As Long


Tableau() = blabla()

For i = LBound(Tableau()) To UBound(Tableau())
MsgBox Tableau(i)
Next
0
konyaliseref Messages postés 35 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 20 juillet 2005
7 juil. 2005 à 11:06
cest normal kil me mette "subscript out of range" lorsque je veux lire le contenu du tableau...??

C* Konyali$eref C*
-------------------->
0
cs_phil23 Messages postés 79 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 14 juillet 2005 1
7 juil. 2005 à 11:20
Essaie d'ajouter Option Base 0 dans la déclaration du module ou tu utilises cette fonction.
Cela indique à VB que le premier indice des tableaux est zéro.
0
konyaliseref Messages postés 35 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 20 juillet 2005
7 juil. 2005 à 13:58
mon cher phil taurais pas une autre idee car jai essayer de mettre option base 0 partout mais ca me met toujours la meme erreur....

C* Konyali$eref C*
-------------------->
0