convertir un string en nom de variable

  • Initiateur de la discussion Initiateur de la discussion laclac
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ??
 
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
 
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 !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
673
Retour