Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et 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.

Réponse
 
Outils de la discussion
Vieux 13/02/2008, 22h42   #1 (permalink)
Invité de passage
 
Date d'inscription: janvier 2003
Messages: 8
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
Vieux 18/02/2008, 12h44   #2 (permalink)
Responsable MSOffice
 
Avatar de Lou Pitchoun
 
Date d'inscription: février 2005
Localisation: Au soleil, Made In Marseille
Âge: 30
Messages: 5 125
Envoyer un message via MSN à Lou Pitchoun
Par défaut

Salut,

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

Code :
Dim maVariable As typedetonobjet
 
Set maVaraible = MonObjet
__________________
Responsable Office
Futurs Modérateurs, Rédacteurs : We need you

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
Vieux 18/02/2008, 22h19   #3 (permalink)
Inscrit(e)
 
Date d'inscription: juillet 2007
Localisation: au pays de la liberté d'esprit
Messages: 3 065
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.
ucfoutu est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/02/2008, 23h46   #4 (permalink)
Membre expérimenté
 
Avatar de DarkVader
 
Date d'inscription: mai 2002
Localisation: . . . . . . . . . . . . . Mon Eden se trouve à l'Est de ceux qui se trouvent à l'Ouest
Messages: 922
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 :
    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.
__________________

« Si Dieu n'est pas marié, pourquoi parle-t-on toujours de sa grande Clémence ? »

Pensez aux liens
Rechercher - Google - Google Labs - AllApi
et avant de poster :
« A lire »
DarkVader est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Général VBA

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide