OVH Cloud OVH Cloud

Attaquer une variable par son nom

11 réponses
Avatar
John Fuss
Bonjour à ts & ttes,

Puis-je faire une fonction où je passe le nom d'une variable et la modifier
?

ex :

Sub MiseAJourVariable(NomVariable as string)
Variable(NomVariable).Caption = "c'est fait"
End Sub

Merci d'avance

John

1 réponse

1 2
Avatar
John Fuss
Merci pour l'info, j'ai utiliser une variable que je stocke en base de
registre pour pouvoir jongler entre ma macro générale et mes sous-macros.
J'ai du rajouter un flag à coté pour être sur de ne pas avoir de surprise.

Merci pour tes infos.

John


"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

Dans ce cas, je pense que tu pourrais ajouter à ta classe une propriété
(Property) dont la valeur pourrait être mise à jour (par exemple dans une
boucle

sur les instances de ta classe) avec une petite procédure de ce style :

Sub MajProp(LaClasse As TaClasse, NouvelleValeur As String)
LaClasse.LaPropriété=NouvelleValeur
End Sub

Ça suppose que la classe que tu as créée comporte une propriété nommée
LaPropriété (ou peut-être même qu'une variable publique déclarée dans la
classe

suffirait..).

A tester.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Le fameux prkoi du comment...

J'ai créé une class dont j'instancie plusieurs occurences (variables
suivant


le projet) et je voudrai faire une fonction où je lui passe un tableau
contenant les noms des occurences et je voudrai que cette f° me fasse un
traitement sur chaque occurence.

Voili voilou

John

"Frédéric Sigonneau" a écrit dans le
message


de news:
Bonsoir,

J'ai peut-être manqué un épisode, mais pourquoi une procédure
particulière



pour
affecter une valeur à une variable au lieu d'une affectation directe :

Public MaVariable

Sub Test()
MaVariable="toto"
MsgBox MaVariable
MaVariable="titi"
MsgBox MaVariable
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Alain,

j'essai ton code, mais je voudrai finalement fair ecomme suit :

Public MaVariable as String

Sub SetValue(Var as string, Value as string)
ModifieVariable(Var) = Value
End Sub

et je tape...
SetValue "MaVariable", "toto"
msgbox MaVariable

est-ce possible ?

"John Fuss" a écrit dans le message de
news:boaa0r$ak3$
Je test ça, merci bcp

John

"Alain CROS" a écrit dans le message de
news:
Bonjour.

Essaye comme ça.

Sub MiseAJourVariable(NomVariable$)
On Error Resume Next
ActiveSheet.OLEObjects(NomVariable).Object.Caption = "c'est
fait"






If Err.Number <> 0 Then MsgBox "raté"
End Sub

Alain CROS.

"John Fuss" a écrit dans le message de
news:






bo822c$90e$
Bonjour à ts & ttes,

Puis-je faire une fonction où je passe le nom d'une variable
et la







modifier
?

ex :

Sub MiseAJourVariable(NomVariable as string)
Variable(NomVariable).Caption = "c'est fait"
End Sub

Merci d'avance

John
























1 2