Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/02/2008, 22h42   #1
Invité régulier
 
Inscription : janvier 2003
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 32
Points : 9
Points : 9
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 !
PsychedeChed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2008, 12h44   #2
Rédacteur
 
Avatar de Lou Pitchoun
 
Christophe Lessirard
Inscription : février 2005
Messages : 5 029
Détails du profil
Informations personnelles :
Nom : Christophe Lessirard
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : février 2005
Messages : 5 029
Points : 6 000
Points : 6 000
Envoyer un message via MSN à Lou Pitchoun
Salut,

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

Code :
1
2
3
Dim maVariable As typedetonobjet
 
Set maVaraible = MonObjet
__________________

Access : Les Cours, Les Sources et Les FAQs Office
Avant de poster : les choses importantes à lire pour la bonne tenue du forum.
sinon

Ma boite à MPs n'est pas l'annexe du forum Le complément BouleDeCristal n'existe pas encore !!!
Lou Pitchoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2008, 22h19   #3
Inactif
 
Inscription : juillet 2007
Messages : 4 555
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 4 555
Points : 5 002
Points : 5 002
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.
ucfoutu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2008, 23h46   #4
Rédacteur
 
Avatar de DarkVader
 
Homme
Développeur informatique
Inscription : mai 2002
Messages : 1 821
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 : 1 821
Points : 2 402
Points : 2 402
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 :
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.
__________________
« Heureux soient les fêlés, car ils laisseront passer la lumière. »

Pensez aux liens
Rechercher - Google - Google Labs - AllApi
et avant de poster : « A lire » , « Tutoriel sur le déboguage »
DarkVader est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h07.


 
 
 
 
Partenaires

Hébergement Web