VBA - appeler une variable en concaténant un string et une variable - VB/VBA/VBS - Programmation
Marsh Posté le 22-04-2009 à 10:07:48
Un solution consisterait à avoir un tableau au lieu d'avoir cinquante variables différentes.
Par exemple :
Dim tb_var(1 to 50) as String |
Marsh Posté le 22-04-2009 à 10:40:53
Hello olivthill,
Merci pour ton aide. Ta solution impliquant de passer par un fichier alors que je récupère mes variables d'un UserForm me pose problème : je zappe l'interface de mon UserForm au profit d'un fichier txt un peu moins convivial.
Tu aurais une alternative qui utiliserait un UserForm s'il te plait ?
Sachant qu'un TextBox ne peut pas s'appeler var(1), var(2), mais seulement var1, var2
Merci,
A.
Marsh Posté le 22-04-2009 à 12:00:22
Désolé. Le fichier c'était juste pour un exemple. En fait, je n'avais pas compris que var1, etc. venaient d'un userform.
Marsh Posté le 23-04-2009 à 00:20:20
Hello !
Un pote m'a mis sur la bonne voie en me conseillant de jeter un œil ici :
http://forum.hardware.fr/hfr/Progr [...] 1690_1.htm
Pour mon code, ça donne donc :
Code :
|
A noter, si mes variables ne venaient pas d'un UserForm, j'aurais utilisé un tableau.
Exemple :
Code :
|
En espérant que l'un des deux exemples serve à quelqu'un
HTH,
Anthony
Marsh Posté le 21-04-2009 à 22:59:06
Hello,
Je voudrais rendre le bout le code suivant plus élégant et bute sur la syntaxe à adopter.
Voici un exemple réduit à sa plus simple expression :
1/ L'utilisateur se voit proposé un UserForm
2/ Il remplit des TextBox dont les noms sont var1, var2, ... var50
3/ Je copie ces données dans les cellules A1, A2, ... A50
NB : je n'utilise pas un tableau ; chaque string (ex. : "var1" ) correspond à un TextBox de mon User Form
Ce code rudimentaire fonctionne :
Seulement voilà, ce n'est pas très classieux
Je voudrais donc utiliser une boucle.
J'avais pensé à cela :
Le problème, c'est que A1 = var1 ; A2 = var 2, etc. Je voudrais, vous l'avez compris, A1 = [valeur stockée dans A1], tout simplement !
Quelqu'un peut-il m'éclairer sur la syntaxe s'il vous plaît ?
Question subsidiaire : la solution 2 sera-t-elle plus rapide à être exécutée ? Comment pourrais-je le déterminer par moi-même ?
(cela pourrait me servir pour d'autres pans de mon code)
Merci pour votre aide
Anthony