Initialisation d'un tableau par référence

IenchGaleu

XLDnaute Nouveau
Bonjour à tous!

Je suis débutant en VBA et Excel, et donc j'ai besoin de votre aide.

Je souhaite créer un tableau "ListInfo(9)" dans une fonction1 et le passer par référence à fonction2 "InitListInfo" pour remplir le tableau par référence. Mon problème est que même grâce à ce site (Utiliser les variables tableaux en VBA Excel), je n'arrive pas à gérer correctement le transfère.

Voici le code en question.

Code:
Function InitListInfo(ByRef ListInfo() As String) As String

    Dim resultat As String

    ListInfo(1) = prenom
    ListInfo(2) = nom
    ListInfo(3) = titre
    ListInfo(4) = fonction
    ListInfo(5) = organisme
    ListInfo(6) = ville
    ListInfo(7) = departement
    ListInfo(8) = categorie1
    ListInfo(9) = categorie2
    resultat = ListInfo

    InitListInfo = resultat

End Function

Code:
Sub ListeFichier()

    Dim ListInfo(9) As String
    Dim i As Integer

    i = 1
    MsgBox InitListInfo(ListInfo)
    'Do
        'MsgBox ListInfo(i)
        'i = i + 1
        'If i = 10 Then Exit Do
    'Loop
End Sub

Vous l'aurez compris, mon but est de récupérer le tableau dans ListeFichier pour pouvoir l'utiliser par la suite.
Merci d'avance pour votre aide, et n'hésitez pas à me conseiller sur mon code.^^
 

IenchGaleu

XLDnaute Nouveau
Re : Initialisation d'un tableau par référence

Merci, en réalité ce n'était qu'une tentative désespérer pour faire fonctionner le code...
J'ai une simple autre question, pour "appeler" la fonction je suis obligé de faire

Code:
ListInfo(0) = InitListInfo(ListInfo)
    Do
        MsgBox ListInfo(i)
        i = i + 1
        If i = 10 Then Exit Do
    Loop
Avec
Code:
Function InitListInfo(ByRef ListInfo() As String) As String

    ListInfo(1) = "prenom"
    ListInfo(2) = "nom"
    ListInfo(3) = "titre"
    ListInfo(4) = "fonction"
    ListInfo(5) = "organisme"
    ListInfo(6) = "ville"
    ListInfo(7) = "departement"
    ListInfo(8) = "categorie1"
    ListInfo(9) = "categorie2"

End Function

Dans "InitListInfo", je remplie le tableau correctement et j'arrive à l'afficher dans la fonction d'avant. Ma question est donc, dois-je appeler "InitListInfo" comme je fait, ou il y a-t-il une meilleur technique?
 

kjin

XLDnaute Barbatruc
Re : Initialisation d'un tableau par référence

Bonjour,
Comprends pas non plus le pb
Mais il me semble qu'il y a mélange de pinceaux...
Code:
Sub a()
Dim i%
i = 1
MsgBox liste(i) & " : marcel"
End Sub

Function liste(ByVal x%) As String
Dim ListInfo(4)
ListInfo(0) = "prenom"
ListInfo(1) = "nom"
ListInfo(2) = "titre"
ListInfo(3) = "fonction"
ListInfo(4) = "organisme"
liste = ListInfo(x)
End Function
...il n'y a pas à passer le tableau à la fonction
Code:
Sub b()
Dim ListInfo(4) As Integer
ListInfo(0) = 1
ListInfo(1) = 2
ListInfo(2) = 3
ListInfo(3) = 4
ListInfo(4) = 5
MsgBox calcul(ListInfo, 3)
End Sub

Function calcul(ByRef ListInfo, ByVal x%) As Double
calcul = ListInfo(x) * ListInfo(UBound(ListInfo)) / ListInfo(2)
End Function
...à l'inverse de cette fois (l'exemple est plus que douteux !)
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 990
Membres
104 000
dernier inscrit
dinelcia