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

VBA Discussion :

collection d'objets en vba


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut collection d'objets en vba
    Bonjour,

    comment déclarer une collection d'objets en VBA (à longueur variable) ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Moi j'ai fait comme ça dans un module de classe :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private mAffectedLines As New Collection
    Et pour les getter et setter :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Property Get AffectedLines() As Collection
    Set AffectedLines = mAffectedLines
    End Property
     
    Property Set AffectedLines(AffectedLines As Collection)
    Set mAffectedLines = AffectedLines
    End Property
    Après dans ton code tu accèdes à ta collection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet.AffectedLines.Add 12
    Tu as les méthodes Add, Remove, Item et Count et tu peux énumérer les objets contenus dans ta collection avec un For Each (et bien sûr pas de taille à déclarer, c'est dynamique) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ' Parse a Connector list and checks if a connector exists in the list (true if found, else false).
    Public Function ExistsConnector(ConnectorID As String, ConnectorList As Collection) As Boolean
        Dim currentConnector As New Connector
        ExistsConnector = False
     
        ' If the connector is found in the connector list, return true.
        For Each currentConnector In ConnectorList
            If currentConnector.ConnectorID = ConnectorID Then
                ExistsConnector = True
            End If
        Next
    End Function
    Je suis débutant en VBA mais j'espère que ça réponds à ta question...

  3. #3
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    oui merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un tableau ou collection pour objets utilisateur Excel VBA
    Par andromedor dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/02/2010, 12h49
  2. Collection d'objets dans VBA
    Par nawel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/08/2008, 10h41
  3. [Struts] <logic:iterate> sur une collection d objets c
    Par trax020 dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/05/2005, 00h11
  4. Probléme collection d'objets
    Par Contrec dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 10h08
  5. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58

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