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 :

[VBA-E] Pb sur la key d'une collection


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Points : 44
    Points
    44
    Par défaut [VBA-E] Pb sur la key d'une collection
    Bonjour,

    Je debute en VB et je voudrais créer une collection avec comme key, la ligne de mon fichier excel.

    Alors pour le moemnt je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    key = Cells(Ligne, PARAMETERNAMECOLUMN).Row
    ...
    paramValues.Add Item:=valeur, key:=key
    Mais, il n'en veux pas, comment faire?

    Merci, de votre aide.

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Premièrement, je ne comprend pas la différence entre tes variables "Ligne" et "key".
    Deuxièmement, je ne crois pas qu'on puisse "numéroter" les éléments d'une collection comme ça, mais je ne suis pas sûr de moi du tout. Pourquoi n'utilises-tu pas un simple tableau, dans lequel les éléments sont repérés par leur numéro?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MonTableau(0) = 14
    MonTableau(1) = 5
    MonTableau(2) = 12
    ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 88
    Points : 44
    Points
    44
    Par défaut
    En fait je souhaite recuperer des donnees de mon classeur vers une collection (parce que je connais la facon dont on y accede) pour, apres action, les sortir dans un fichier texte.
    Mais je ne sais pas comment utiliser le tableau en vb. J'ai regarder la faq, mais ce n'est pas bien clair,

    Si jamais tu avais la bonte de me dire comment ça s'utilise, ce serait super.

  4. #4
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Y'a pas plus simple, tu le déclares comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim MonTableau(10) As String
    Là, par exemple, tu réserves 11 places (de 0 à 10) pour y mettre des chaîne de caractères. Tu peux bien sûr choisir la taille, et y mettre tous les types de données.
    Et tu accèdes aux éléments, en lecture comme en écriture, comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MonTableau(4) = "Taratata"
    MsgBox(MonTableau(4))

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Pour mémo, tu peux utiliser une collection, voici un exemple de syntaxe :

    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
        Dim paramValues As New Collection
        Dim valeur(2) As String
        Dim cle(2) As String
     
        valeur(0) = "Visual"
        valeur(1) = "Basic"
        valeur(2) = "6.0"
     
        cle(0) = "0"
        cle(1) = "1"
        cle(2) = "2"
     
        For i = 0 To 2
            paramValues.Add valeur(i), cle(i)
        Next i
     
        For i = 0 To 2
            'Attention, l'index d'une collection démarre à 1
            Debug.Print paramValues.Item(i + 1)
        Next i
    En général, je préfère les tableaux aussi ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut Re: Pb sur la key d'une collection
    Citation Envoyé par niro75
    Bonjour,

    Je debute en VB et je voudrais créer une collection avec comme key, la ligne de mon fichier excel.

    Alors pour le moemnt je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    key = Cells(Ligne, PARAMETERNAMECOLUMN).Row
    ...
    paramValues.Add Item:=valeur, key:=key
    Mais, il n'en veux pas, comment faire?

    Merci, de votre aide.
    C'est normal qu'il n'en veuille pas...
    Cells.Rows est un entier.
    Si la clé d'un élément d'une collection était un entier tu ne pourrais pas l'utiliser car maCollection(3) aurait un double sens: est-ce le troisième élement de ta collection ou bien l'élément qui a la valeur 3 pour clé ?
    C'est pour ça que la clé d'un élément d'une collection doit commencer par une lettre pour lever l'ambiguité entre index et clé.
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

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

Discussions similaires

  1. Contrôle des key d'une collection
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/10/2010, 11h19
  2. Réponses: 4
    Dernier message: 01/12/2009, 14h11
  3. Réponses: 0
    Dernier message: 11/11/2008, 19h52
  4. OnMouseEnter et OnMouseLeave sur des items d'une collection
    Par petitprince dans le forum Composants VCL
    Réponses: 3
    Dernier message: 17/09/2007, 20h57
  5. [VBA] événements souris sur un item d'une listview
    Par DJBORIE dans le forum VBA Access
    Réponses: 11
    Dernier message: 13/04/2007, 15h08

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