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 :

type de données qui contient un tableau dynamique [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut type de données qui contient un tableau dynamique
    bonjour,
    je poste une discussion car je n'ai pas trouvé de bonnes réponses sur la toile

    je voudrais faire un type de données, ie une structure en vba, dont un élément serait un tableau dynamique.
    un exemple sémantique serait un répertoire avec sa liste de fichiers dont on ne connait pas le nombre à priori.
    bien sur je pourrais faire autrement, mais je voudrais savoir faire ce genre de structures


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    type repertoire
     nom_rep as string
    list_fic() as string
     
    end type
    ce code hurle à la compilation

    est ce possible ou bien je me trompe quelque part

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Bonjour,

    je ne pense pas que la syntaxe fonctionnera comme tu le veux

    mais si j'était toi, j'essaierai d'utiliser les collection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    type repertoire
     nom_rep as string
     list_fic as Collection 
    end type

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    aie Collection je connais pas trop bien
    je crois que ça fait référence aux modules de classe et je ne ne maitraise pas trop bien encore.
    et je ne sais pas si ça répond à ma question
    peux tu m'endire plus

  4. #4
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    simplement
    Collection est une liste d'objet
    que tu pourras ajouter en faisant par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list_fic.Add "MonNouveauSrting"
    Sinon F1 sera ton grand ami ;o)

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    je veux essayer ça mais ça hurle à la compil
    " impossible de définir un type public défini par l'utilisateur à l'interieur d'un module objet"


    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
     
    Type repertoire
     nom_rep As String
     list_fic As Collection
    End Type
     
    Sub toto()
     
    Dim Tab_essai(1 To 3) As repertoire
     
    Tab_essai(1).nom_rep = "Le 1"
    Tab_essai(1).list_fic.Add = "titi"
    Tab_essai(1).list_fic.Add = "toto"
    Tab_essai(1).list_fic.Add = "titi"
     
    Tab_essai(2).nom_rep = "Le 2"
    Tab_essai(2).list_fic.Add = "vodo"
    Tab_essai(2).list_fic.Add = "dofo"
     
    End Sub

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    tu dois essayer comme ça
    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
    Type repertoire
     nom_rep As String
     list_fic As New Collection
    End Type
     
    Sub toto()
     
    Dim Tab_essai(1 To 3) As repertoire
     
    Tab_essai(1).nom_rep = "Le 1"
    Tab_essai(1).list_fic.Add "titi"
    Tab_essai(1).list_fic.Add "toto"
    Tab_essai(1).list_fic.Add "titi"
     
    Tab_essai(2).nom_rep = "Le 2"
    Tab_essai(2).list_fic.Add "vodo"
    Tab_essai(2).list_fic.Add "dofo"
     
    End Sub
    pas de "=" lorsque tu fait Add
    et mettre New dans la déclaration

  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Essaie comme ça, en changeant le dossier :

    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
    Type repertoire
     nom_rep As String
    list_fic() As String
    End Type
    Sub test2()
    Dim Dossier As repertoire, FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Dossier.nom_rep = "C:\Users\Daniel\Documents\Donnees\AMELIE"
    With FSO.getfolder(Dossier.nom_rep)
        ReDim Dossier.list_fic(.Files.Count)
        For Each f In .Files
            i = i + 1
            Dossier.list_fic(i - 1) = f.Name
        Next f
    End With
    MsgBox Dossier.list_fic(0)
    End Sub

  8. #8
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    merci Daniel, c'est exactement ce que je veux, et pas loin de ce que j' imaginais

    merci mayekeul de tes conseils, je vais regarder de prés ces histoires ce collection

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

Discussions similaires

  1. [MySQL] Données présentes dans un tableau dynamique
    Par developpeuse20 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 30/03/2009, 14h01
  2. [Oracle] Affichage des données sous forme de tableau dynamique
    Par bsidy1 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/10/2008, 14h17
  3. Vérifier un champs qui contient un tableau
    Par jeremygata dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2008, 16h39
  4. type de donnée qui accepte des caractères non imprimables
    Par tasnim86 dans le forum Général Python
    Réponses: 1
    Dernier message: 11/03/2008, 13h37
  5. Remplir un comboBox selon les données qui contient l'autre comboBOx
    Par PhiberOptik dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/06/2006, 07h43

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