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 :

[VBA] Collection et Classes


Sujet :

VBA

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Points : 47
    Points
    47
    Par défaut [VBA] Collection et Classes
    Bonjour,

    j'ai une petite appli en VBA qui explore un dossier et qui extrait les données contenues dans des fichiers csv.
    Les fichiers csv, sont tous formatés de la meme maniere (5 colonnes et meme type de données dans chaque colonne).
    Donc j'ai voulu stocké ces données dans des collections parce que je ne sais pas combien j'ai de fichiers, et combien de lignes il y a par fichier.
    J'ai donc créé 2 modules de classe :
    - fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public name As String
    Public raw_data As Collection
    l'attribut raw_data est une collection qui doit contenir des instances d'enregistrement.

    - enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public attribut1 As String
    Public attribut2 As Integer
    Public attribut3 As String
    Public attribut4  As Integer
    Public attribut5  As Integer
    Tout ca pour dire, que j'ai declaré une collection dans mon appli qui doit contenir des instances de fichier.
    Et tout ca ne marche pas.
    Mes questions sont les suivantes :
    - ai-je le droit d'utiliser des collections dans des modules de classes ?
    - ai-je le droit de remplir une collection de modules de classes ?
    - ai-je le droit de faire des collection de collection ?

    globalement pourquoi ça marche pas ?

  2. #2
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Points : 47
    Points
    47
    Par défaut
    alors je vais m'aider moi meme...et les autres qui auraient ce meme genre de probleme.
    J'ai reussi a remplir ma collection d'instances de module de classes avec la syntaxe suivante:

    maCollection.Add Item: instanceClasse

    Par contre, j'ai declaré ma collection dans le code du workbook; j'y ai donc accès avec ThisWorkbook.maCollection.
    J'ai créé quelques formulaires.
    Dans un 1er formulaire je rempli ma collection, je teste son contenu, tout va bien.
    Et j'arrive toujours a y acceder quand je passe aux autres formulaires.
    Je ne suis pas un expert de VBA donc j'aimerai savoir quelle est le meilleur moyen (le plus correct, le plus propre) pour declarer ma collection accessible dans le code de tous mes formulaires ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Points : 47
    Points
    47
    Par défaut
    Desole je reposte un autre probleme sur le meme sujet.
    Pour le moment tout va bien.
    J'ai donc créé mes modules de classe.
    J'ai créé ma collection, j'ai instancié mes classes et rempli ma collection.
    Je me ballade aux travers de mes formulaires.
    Mais je n'arrive pas a recuperer les elements de la collection
    voila ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim current_sample As sample (c'est ma classe)
     
    If ThisWorkbook.maCollection.Count = 0 Then
            dsf = MsgBox("No data !", vbCritical)
    Else
            MsgBox ("TAILLE : " & ThisWorkbook.maCollection.Count)
     
            For i = 1 To ThisWorkbook.maCollection.Count
                Set current_sample = ThisWorkbook.maCollection.Item(i)
                MsgBox current_sample.name
            Next i
    ...
    end if
    sur la ligne où je recupere un objet avec la methode Item, j'ai le message 424 "Object required"

    Alors, comment faire pour recuperer les données d'une collection ?

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

Discussions similaires

  1. [VBA] Module de classe et évènement
    Par Caroline1 dans le forum Access
    Réponses: 9
    Dernier message: 20/03/2013, 23h23
  2. [VBA] Collection dans un module de classe
    Par spaiku dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/08/2008, 10h38
  3. VBA Module de classe
    Par koolWak dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2007, 22h50
  4. Réponses: 1
    Dernier message: 16/07/2007, 17h42
  5. [VBA] Utilisation de classes
    Par mathias dans le forum VBA Access
    Réponses: 14
    Dernier message: 02/10/2006, 09h29

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