Initialisation d'un tableau par référence

  • Initiateur de la discussion Initiateur de la discussion IenchGaleu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

I

IenchGaleu

Guest
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.^^
 
Re : Initialisation d'un tableau par référence

...
Après une belle journée de recherche je viens de comprendre que j'avais juste oublié les guillemets dans l'initialisation des variables...
Merci tout de même de votre aide! 🙂
 
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?
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
884
Retour