IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Retourner un Array à la Sub


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 5
    Par défaut Retourner un Array à la Sub
    Bonjour,

    J'ai petit soucis pour retourner un Array à ma procédure appelante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub Button1_Click()
     
      Dim testarray As Variant
      testarray = test()
     
      Dim i As Integer
      For i = 0 To 1
       MsgBox "" & testarray(i) 'ici il me retourne un type mismatch
      Next i
     
    End Sub
     
     
    Function test() As Variant
     
        Dim MyArray(1) As String
        MyArray(0) = 10
        MyArray(1) = 30
     
    End Function

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    il fallait affecter MyArray a test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function test() As String()
    Dim MyArray(1) As String
     
    MyArray(0) = 10
    MyArray(1) = 30
    test = MyArray 'ICI
    End Function

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Bonjour mercatog, tu es sûr qu'on peut renvoyer un array via une sub ? Il me semblait que c'était impossible et que le seul moyen était d'utiliser des array de portée publique. Mais je confonds peut-être.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Relis la question initiale et la réponse fournie.
    la fonction test retourne un tableau qu'il utilise dans sa procédure.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 5
    Par défaut
    Merci de vos réponses mais je n'ai pas encore réussi a le faire fonctionner.
    J'en suis la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Button1_Click()
      Dim testarray(1) As Integer
      testarray = test()
      MsgBox "" & testarray(0)
      MsgBox "" & testarray(1)
    End Sub
    Function test() As Integer()
        Dim MyArray(1) As Integer
        MyArray(0) = 10
        MyArray(1) = 30
        test = MyArray
    End Function
    Sur la ligne :
    J'ai Compile error: Can't assign to array.

    Le problème se solutionne si je ne définis pas la taille du Array :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim testarray() As Integer
    Savez-vous pourquoi ?

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Button1_Click()
    Dim testarray As Variant
     
    testarray = test()
    MsgBox testarray(0)
    MsgBox testarray(1)
    End Sub
    Function test() As Integer()
    Dim MyArray(0 To 1) As Integer
     
    MyArray(0) = 10
    MyArray(1) = 30
    test = MyArray
    End Function

Discussions similaires

  1. "Quantité" max retournée par array
    Par martinfa dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/02/2011, 18h49
  2. [XL-2000] fonction personnelle qui retourne un array
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2010, 12h44
  3. [RegEx] Retourner une array sur une partie de la chaine
    Par absurdsystem dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2010, 16h03
  4. Retourner un array avec ctypes
    Par monnomamoi dans le forum Interfaçage autre langage
    Réponses: 2
    Dernier message: 17/06/2009, 15h59
  5. [Tableaux] retourner un array ou un champs
    Par ozzmax dans le forum Langage
    Réponses: 7
    Dernier message: 29/09/2006, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo