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 :

as Collection / as Names [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut as Collection / as Names
    Bonjour les gars,
    Je veux ecrire une petite routine qui parcourt la collection Names de mon classeur actif et affiche ensuite leur nom.
    Le probleme est que quand je declare la variable MesNoms comme Names tout se passe bien. Mais si je la declare comme Collection ma routine beugue. Names est pourtant une collection !!!

    Aidez moi svp a comprendre ce qui ne marche.

    Thanks in advance.

    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
    21
    Sub CollectionNames()
     
    'quelqu 'un peut_il m'expliquer pourquoi quand je declare MesNoms comme une Collection, ma procedure ne marche pas?
     
        Dim MesNoms  As Names 'tout marche bien avec Names
     
        'Dim MesNoms  As Collection  'as Collection ca ne marche plus.
    'bien evidemment je n'utilise pas les 2 declarations a la fois.
        Dim i As Name
        Dim k As Integer
     
        Set MesNoms = Application.ActiveWorkbook.Names
        Debug.Print TypeName(MesNoms)
        Dim Num As Integer
        Num = MesNoms.Count
        Debug.Print Num
     
        For k = 1 To Num
           Debug.Print MesNoms(k).Name
        Next k
    End Sub

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    Bonjour,

    Une collection est un objet
    La collection Names est un objet (s'agissant d'une collection, elle est du type ... de l'objet Names)
    Fais cette exéprience :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox TypeName(ActiveWorkbook.Names) ' --->> te retournera NBammes et non Collection.
    tu dois donc déclarer mesnoms ainsi :
    Quel obvjet, mauintenant ? --->> c'est précisément ce que définit ton instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MesNoms = Application.ActiveWorkbook.Names
    Edit ;
    Complète ton expérience par celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim MesNoms As Collection
    msgbox typename(MesNoms) ' ''''' --->> Nothing 
    Dim MesNoms2 As New Collection
    msgbox typename(MesNoms2) ' ''''' --->> Collection, maintenant, puisqu'ainsi définie
    Names (la collection Names) a été créée en 3 temps : temps1 : comme New collection - temps 2 : remplissage de la collection --->> temps 3 : elle est devenue un objet à part entière

    Si donc, tu voulais avoir ton propre objet/collection macollection avec les même membres dque ceux de l'objet/collection Names, ce serrait possible (mais à quoi bon ?) en :
    - déclarant macollection comme New Collection
    - puis en l'alimentant avec chacun des membres de la collection Names (méthode Add).
    A quoi servirait cette gymnastique ? A rien de mieux que la collection déjà existante !

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    merci bcp pour la reponse on ne peut plus claire.elle m'as permis de surmonter ma difficulté.

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

Discussions similaires

  1. Trier les Range de la collection "Names"
    Par martin.j.25 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/07/2008, 00h29
  2. TXMLModule.create - name = resource not found
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 04/03/2003, 11h54
  3. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 14h20
  4. naming service
    Par manuel dans le forum CORBA
    Réponses: 6
    Dernier message: 09/12/2002, 18h43
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 15h49

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