Utiliser une methode dont le nom se trouve dans une variable
freedom73
Messages postés2Date d'inscriptiondimanche 18 novembre 2007StatutMembreDernière intervention 2 décembre 2007
-
2 déc. 2007 à 14:21
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
2 déc. 2007 à 16:37
Bonjour
je recherche comment pourvoir utiliser une variable (et accessoirement une procedure) dont son nom se trouve dans une chaine de caractere.
je m'explique:
j'ai cree une structure constituée de plusieurs éléménts. Cette struture est destinée à definir les informations de differents "objets" a differents moment.
Les noms des objets sont donc composé de son nom et du numero de l'etat dans lequel il se trouve : <nom objet><Num>
ex: je possede une liste d'objet de ce type
objet01
objet02
test01
test02
test03
essai01
j'ai cree une procedure qui suivant les informations en cours du logiciel definit "l'objet" et son numero d'etat
je met donc dans une variable strinf la chaine de caractere correspondant a "l"objet"
NomEnCours = <nom objet> & <Num>
exemple:
NomEnCours = "test" & "01"
une fois arrive la je suis bloque, je n'arrive pas a recuperé les valeurs de la structure de la forme
NomEnCours.valeur
je prevois d'utiliser la meme methode pour des procedures (oui je suis ce n'est pas super propre)
je pense qu'il doit exister une fonction ou une methode pour transformer la chaine de caractere en nom de variable mais je n'arrive pas à la trouver
merci d'avance
freedom73
A voir également:
Utiliser une methode dont le nom se trouve dans une variable
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 déc. 2007 à 14:51
Bonjour,
Non ! Tu ne peux te référer à une variable en utilisant une chaîne de caractères ...
VB tient, de façon interne, une relation (avec VarPtr) de l'adresse de chaque variable à chaque niveau (procédure, etc...)
Mais toi, tu ne peux utiliser cette relation car le nom (en string) de la variable concernée pourrait, entre autres, être le même pour plusieurs variables !
La pruve (s'il en faut) ?
La voilà :
Option Explicit
Private toto As Object
' on voit bien que le même nom est finalement attribué à 2 variables fort différentes
Private Sub Form_Load()
Set toto = Me
End Sub
Private Sub Command1_Click()
Dim toto As Integer
toto = 10
MsgBox Val(toto) * 2
End Sub
Private Sub Command2_Click()
MsgBox toto.Name
End Sub
A quelle variable toto te réfèrerais-tu à l'aide de la chaîne "toto", hein ?...
conclusion : abandonne ton idée; à moins de constituer (lourd) au sein de ton appli, un tableau perso de correspondance de chaînes et de variables.
freedom73
Messages postés2Date d'inscriptiondimanche 18 novembre 2007StatutMembreDernière intervention 2 décembre 2007 2 déc. 2007 à 16:10
Bonjour
j'esperais qu'il y avais une instruction permettant de dire "lancer le code dans la chaine de caractere". un peu comme en dos avec les caracteres speciaux %.variable%
si cela n'est pas possible je vais alors alourdir mon application en multipliant les if ... then