Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

boucle avec noms de variables

5 réponses
Avatar
JeNeVois
Bonjour !

J'ai un petit prob d'écrire une boucle qui prend en charge
les noms de variables auxquels sont associés des
opérations correspondantes.

Exp :
la1
la2
la3

For x=1 to 3
la & x = y*x 'cela ne fonctionne pas puisque le nom n'est pas un
"string"
next x

Cela paraît tellement elémentaire que je crains de me faire huer :)

5 réponses

Avatar
Rv
Bonjour,

N'est il pas plus simple d'utiliser un tableau plutôt qu'un succession
de variable?

A+


Rv

"JeNeVois" a écrit dans le message de
news:

Bonjour !

J'ai un petit prob d'écrire une boucle qui prend en charge
les noms de variables auxquels sont associés des
opérations correspondantes.

Exp :
la1
la2
la3

For x=1 to 3
la & x = y*x 'cela ne fonctionne pas puisque le nom n'est pas
un

"string"
next x

Cela paraît tellement elémentaire que je crains de me faire huer :)




Avatar
anonymousA
bonjour,

un peu fastidieux cependant s'il y a beaucoup de variables et pas
beaucoup plus simple que if x=1 then lap1=y*x elseif x=2 then lap2=y*x
et ainsi de suite.

Dim tabvar
Dim lap1, lap2, lap3

y = 2
tabvar = Array(lap1, lap2, lap3)

For x = 1 To 3
tabvar(x - 1) = y * x
Next

lap1 = tabvar(0)
lap2 = tabvar(1)
lap3 = tabvar(2)

A+

Bonjour !

J'ai un petit prob d'écrire une boucle qui prend en charge
les noms de variables auxquels sont associés des
opérations correspondantes.

Exp :
la1
la2
la3

For x=1 to 3
la & x = y*x 'cela ne fonctionne pas puisque le nom n'est pas un
"string"
next x

Cela paraît tellement elémentaire que je crains de me faire huer :)




Avatar
anonymousA
d'ailleurs on demande vraiment pourquoi dans cette configuration on
n'écrirait pas
Dim tabvar(1 to 3)
Dim lap1, lap2, lap3

y = 2

For x = 1 To 3
tabvar(x) = y * x
Next

lap1 = tabvar(1)
lap2 = tabvar(2)
lap3 = tabvar(3)

C'est quand même encore + simple.

A+

bonjour,

un peu fastidieux cependant s'il y a beaucoup de variables et pas
beaucoup plus simple que if x=1 then lap1=y*x elseif x=2 then lap2=y*x
et ainsi de suite.

Dim tabvar
Dim lap1, lap2, lap3

y = 2
tabvar = Array(lap1, lap2, lap3)

For x = 1 To 3
tabvar(x - 1) = y * x
Next

lap1 = tabvar(0)
lap2 = tabvar(1)
lap3 = tabvar(2)

A+


Bonjour !

J'ai un petit prob d'écrire une boucle qui prend en charge
les noms de variables auxquels sont associés des opérations
correspondantes.

Exp :
la1
la2
la3

For x=1 to 3
la & x = y*x 'cela ne fonctionne pas puisque le nom n'est
pas un "string"
next x

Cela paraît tellement elémentaire que je crains de me faire huer :)






Avatar
JLuc
Bonjour à toutes, tous et à anonymousA,
dans ton message,tu nous dis :

|| bonjour,
||
|| un peu fastidieux cependant s'il y a beaucoup de variables et pas
|| beaucoup plus simple que if x=1 then lap1=y*x elseif x=2 then
|| lap2=y*x et ainsi de suite.
||
|| Dim tabvar
|| Dim lap1, lap2, lap3
||
|| y = 2
|| tabvar = Array(lap1, lap2, lap3)
||
|| For x = 1 To 3
|| tabvar(x - 1) = y * x
|| Next
||
|| lap1 = tabvar(0)
|| lap2 = tabvar(1)
|| lap3 = tabvar(2)
||
|| A+
||
||| Bonjour !
|||
||| J'ai un petit prob d'écrire une boucle qui prend en charge
||| les noms de variables auxquels sont associés des
||| opérations correspondantes.
|||
||| Exp :
||| la1
||| la2
||| la3
|||
||| For x=1 to 3
||| la & x = y*x 'cela ne fonctionne pas puisque le nom
||| n'est pas un "string"
||| next x
|||
||| Cela paraît tellement elémentaire que je crains de me faire huer :)

Une autre solution serai peut etre d'utiliser un select case :
select case x
case 1 : lap1=...
case 2 : lap2=...
case 3 : lap3=...
case esle : msgbox "trop loin.."
end select
Ca marcherait pas ?
JLuc
Avatar
JeNeVois
Merci , cela est bien la solution , d'autant plus
qu'au moins dans mon application je peux
rénoncer à la réconversion des tabvar(x)
en lapx, c'est qui facilite bien à la fois l'écriture
et la procédure. :)


d'ailleurs on demande vraiment pourquoi dans cette configuration on
n'écrirait pas
Dim tabvar(1 to 3)
Dim lap1, lap2, lap3

y = 2

For x = 1 To 3
tabvar(x) = y * x
Next

lap1 = tabvar(1)
lap2 = tabvar(2)
lap3 = tabvar(3)

C'est quand même encore + simple.

A+

bonjour,

un peu fastidieux cependant s'il y a beaucoup de variables et pas
beaucoup plus simple que if x=1 then lap1=y*x elseif x=2 then lap2=y*x
et ainsi de suite.

Dim tabvar
Dim lap1, lap2, lap3

y = 2
tabvar = Array(lap1, lap2, lap3)

For x = 1 To 3
tabvar(x - 1) = y * x
Next

lap1 = tabvar(0)
lap2 = tabvar(1)
lap3 = tabvar(2)

A+


Bonjour !

J'ai un petit prob d'écrire une boucle qui prend en charge
les noms de variables auxquels sont associés des opérations
correspondantes.

Exp :
la1
la2
la3

For x=1 to 3
la & x = y*x 'cela ne fonctionne pas puisque le nom n'est
pas un "string"
next x

Cela paraît tellement elémentaire que je crains de me faire huer :)