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 :

Variable contenant un nom de variable


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 32
    Par défaut Variable contenant un nom de variable
    Bonjour,

    Je voudrais qu'une variable contienne le nom d'un objet sur lequel je pourrais donc appeler ses méthodes.
    Pour ceux qui connaissent php, ça serait l'équivalent du $$variable.
    Si ça dit quelque chose à quelqu'un...
    Merci !

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Si j'ai compris, il te suffit de déclarer ta variable du même type que l'objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim maVariable As typedetonobjet
     
    Set maVaraible = MonObjet

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    Si, par contre, c'est ce que j'ai compris et qu'il veut usiliser une variable en se servant de la chaîne de caractères représentant son nom, la chose n'est pas possible sous VB.

    Sauf en ce qui concerne les noms de contrôles (et pas les autres objets), en utilisant la collection Controls.

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Citation Envoyé par PsychedeChed Voir le message
    Bonjour,

    Je voudrais qu'une variable contienne le nom d'un objet sur lequel je pourrais donc appeler ses méthodes.
    Pour ceux qui connaissent php, ça serait l'équivalent du $$variable.
    Si ça dit quelque chose à quelqu'un...
    Merci !
    Exactement comme avec php ce n'est pas possible mais si tu acceptes d'affecter l'objet en question à un object intermédiaire
    c'est alors possible avec l'objet Dictionary de la librairie Microsoft Scripting Runtime (La même qui gère le File System Object)

    exemple
    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
    22
    23
    24
    25
    26
    27
    28
    29
        Dim Dict As New Dictionary, fso As New FileSystemObject, myVar As String, tmpVar As String
     
        ' 1ère entrée du Dictionary
        myVar = "newVar"
        Dict.Add myVar, 0
        Set Dict(myVar) = fso
     
        ' 2ème entrée du Dictionary
        myVar = "otherVar"
        Dict.Add myVar, 1
        Set Dict(myVar) = fso.Drives
        Set fso = Nothing
     
     
        '.../...
        'et ensuite
     
        tmpVar = "newVar": Debug.Print Dict(tmpVar).FileExists("E:\testForUpload.txt")
        'équivalent à
        Debug.Print Dict("newVar").FileExists("E:\testForUpload.txt")
        'avec
        Debug.Print "Dict(0) = "; Dict.Keys(0)
     
        'et
        tmpVar = "otherVar": Debug.Print Dict(tmpVar).Count
        'équivalent à
        Debug.Print Dict("otherVar").Count
        'avec
        Debug.Print "Dict(1) = "; Dict.Keys(1)
    Dans l'exemple ci-dessus Dict("newVar") contient l'object fso alors que Dict("otherVar") contient la collection Drives .
    Les 2 pouvant être identifiés et appelés par l'intermédiaire d'une variable string et inversement.
    Dictionary est un object méconnu mais assez puissant.

Discussions similaires

  1. Variable contenant le nom du fomulaire ouvert
    Par kevain_09 dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/06/2007, 14h07
  2. Réponses: 2
    Dernier message: 27/07/2006, 13h57
  3. variable contenant le nom d'une methode d'une classe
    Par s1pike dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/05/2006, 13h48
  4. [Tableaux] Chaine contenant des noms de variables
    Par novices dans le forum Langage
    Réponses: 6
    Dernier message: 06/04/2006, 23h33
  5. nom de variable contenant un variable
    Par nevenjm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/03/2006, 11h04

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