convertir un string en nom de variable

L

laclac

Guest
Je cherche un moyen de convertir un contenu de variable string en nom de variable.
Pour expliquer ce que je veux faire le plus simple c'est encore un exemple..
Cette exemple ne ressemble pas à mon vrai codage mais le problème est le meme. Je regardais donc si possible le problème est pas les erreurs de codage (je l'ai fé en rapido c'est pour ça ;)
(Attention ce code possède donc des noms de variables et des valeurs de variables identiques.. mais c'est pas pareil, faut pas confondre !)

Dim Temp1 as String

test1 = "Bonjour"
test2 = "bonjour2"
test3 = "bonjour3"

Temp1 = Combobox1.text (il y a que 3 fois "test1", "test2", "test3")

'Ce que je veux faire est très bete mais pénible.. voici ce que je fais actuellement

If temp1 = "test1" then
Range("A1).value = test1
end if

If temp1 = "test2" then
Range("A1).value = test2
end if

[..]

Bien sur, un truc simple qui me convient ca serais de pouvoir convertir le contenu de la valeur tempo en variable... comme ca j'aurais juste à faire :

Range("A1).value = ***(temp1)

C'est possible ??
 
@

@+Thierry

Guest
Bonjour "LaClac", "MilkShaker" (sacrés pseudos là !!! ), Bonjour le Forum

Je ne sais pas trop dans quoi tu travailles, mais imaginons un UserForm avec une ComboBox (ComboBox1) et un CommandButton (CommandButton1), voici ce que ça donnerait comme code dnas le Private Module du UserForm en question:

Option Explicit

Private Sub UserForm_Initialize()
Dim i As Byte

   With Me.ComboBox1
        For i = 1 To 3
           .AddItem "Test" & i
        Next
   End With
End Sub


Private Sub CommandButton1_Click()
Dim i As Byte
Dim TabVar() As String
Dim TabIndex As Byte

   ReDim TabVar(3)
      For i = 0 To 2
          TabVar(i) = "Bonjour " & i + 1
      Next

If ComboBox1.ListIndex = -1 Then Exit Sub

TabIndex = ComboBox1.ListIndex
Range("A1") = TabVar(TabIndex)

End Sub

Bon appétit
@+Thierry
 
L

laclac

Guest
Très bien @+ thierry (en matière de pseudo le tien est pas mal non plus : les 2 en 1 ;)

Je ne demandais pas tant merci bcp !!!
C'est vraiment bien rien à dire..
Bon juste test1, test2,test3 n'existe pas dans mon vrai codage, c'est des variables avec des noms bien spécifique mais c'est plus facile à comprendre ainsi. Donc merci bcp la réponse était dont la clef était dans la variable TabVar(i)...

J'ai par contre un souci ! c'est que pour reprendre l'exemple, mes variables test sont valables dans toutes les procédures :
Global Const test1 As String = "Bonjour"
Global Const test2 As String = "Bonjour2"
Global Const test3 As String = "Bonjour3"

Et Global Const TabVar(1) As String = "Bonjour"
fonctionne pas !
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth