OVH Cloud OVH Cloud

variables (affectation de valeurs)

7 réponses
Avatar
Alain Rousseau
Bonjour !

un grand merci si qcq peut me d=E9panner !

J'ai un tableur excel (97) avec 2 colonnes
1 colonne avec des nom de VARIABLEs (d=E9j=E0 definies dans le=20
code)

1 colonne avec des valeurs que doivent prendre ces=20
variables =E0 un moment donn=E9 .

j'ai beau chercher (mais je ne dois pas =EAtre tr=E8s dou=E9)=20
mais je ne trouve pas de code me permettant de mettre a=20
jour mes variables =E0 partir de ce tableau

Autrement dit si dans une cellule d'excel il y a le nom=20
d'une variable je n'arrive pas =E0 renseigner cette variable

............... et =E7a m'enerve !!

merci d'avance

AR

7 réponses

Avatar
Alain Rousseau
effectivement je ne suis pas très clair, et je prends un
exemple avec 3 variables
age,nom,prenom


1 er colonne le nom des variables
EX CELLULE A10------> "Age"-----> cellule B10-> 25
A11------> "NOM"-----> cellule B11-> "DUPONT"
A12------> "PRENOM"--> cellule B12-> "JEAN"

je voudrai pouvoir renseigner mes variables par une
routine anlysant la colonne a et la colonne b du type
en admettant qe la liste des varaible en a
s'appelle "liste_variables"


For each c in range("liste_variable").cells
lavariable=c
lavaleur=C.offset(0,1)

je ne sais pas affecter lavaleur à lavariable

next c


Merci

AR
Avatar
Ellimac
Bonjour,

La macro suivante devrait te donner un début de piste :
Sub Variables()
n = Range(Range("a10"), Range("a10").End
(xlDown)).Cells.Count
Dim tabl()
Dim tabl2()
For cpt = 1 To n
ReDim Preserve tabl(n)
ReDim Preserve tabl2(n)
tabl(cpt) = ActiveCell.Offset(cpt - 1, 0)
tabl2(cpt) = ActiveCell.Offset(cpt - 1, 1)
MsgBox tabl(cpt)
MsgBox tabl2(cpt)
Next
End Sub

Camille

-----Message d'origine-----

Bonjour !

un grand merci si qcq peut me dépanner !

J'ai un tableur excel (97) avec 2 colonnes
1 colonne avec des nom de VARIABLEs (déjà definies dans
le

code)

1 colonne avec des valeurs que doivent prendre ces
variables à un moment donné .

j'ai beau chercher (mais je ne dois pas être très doué)
mais je ne trouve pas de code me permettant de mettre a
jour mes variables à partir de ce tableau

Autrement dit si dans une cellule d'excel il y a le nom
d'une variable je n'arrive pas à renseigner cette variable

................ et ça m'enerve !!

merci d'avance

AR
.



Avatar
finopat
Bonjour,
Si j'ai bien compris, il suffit d'activer la cellule sur laquelle tu
travailles :

Dim c as object

For each c in range("liste_variable").cells
c.activate
lavariable=c
lavaleur=C.offset(0,1)
...... ke reste de ta macro next c

J'espère que c'est cela.
Patrice

Le Tue, 29 Jul 2003 04:11:32 -0700, Alain Rousseau a
écrit:


effectivement je ne suis pas très clair, et je prends un exemple avec 3
variables
age,nom,prenom


1 er colonne le nom des variables
EX CELLULE A10------> "Age"-----> cellule B10-> 25
A11------> "NOM"-----> cellule B11-> "DUPONT"
A12------> "PRENOM"--> cellule B12-> "JEAN"

je voudrai pouvoir renseigner mes variables par une routine anlysant la
colonne a et la colonne b du type
en admettant qe la liste des varaible en a s'appelle "liste_variables"


For each c in range("liste_variable").cells
lavariable=c
lavaleur=C.offset(0,1)
je ne sais pas affecter lavaleur à lavariable

next c


Merci

AR







--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/

Avatar
finopat
Bonjour,
Il y ara peut être doublon, car je ne sais pas si mon précédent message est
parti correctement.

Si j'ai bien compris, il suffit d'activer la cellule sur laquelle tu
travailles :
Je te donne la solution telle que je l'applique (au moins je suis sur que
cela fonctionne !!), tu pourras essayer
avec la tienne et me dire si cela fonctionne, je gagnerais du temps la
prochaine fois que je
l'utiliserais ;-)

dim c as range
Range("liste_variable").select
for each c in selection
c.activate
lavariable¬tivecell.value
lavaleur¬ticell.offset(0,1)
......
next c


Avec ton code à toi :
For each c in range("liste_variable").cells
c.activate
lavariable=c
lavaleur=C.offset(0,1)
.....
next c


"Alain Rousseau" a écrit dans le message news:
0c6901c355e6$e0aba450$
Bonjour camille,
Merci de ton aide mais dans ta solution je travaille en
tableau.

Dans mon code mes varaiables sont déjà definies depuis
longtemps de manière unitaire, et la procédure que je
voudrai mettre en place consiste a mettre en place une
routine permettant de traiter la mise a jour de la liste
de ces variables, sans être obligé de les appeler
successivement pour leur affecter une nouvelle valeur.

si tua as une idée

merci d'avance
AR



-----Message d'origine-----
Bonjour,

La macro suivante devrait te donner un début de piste :
Sub Variables()
n = Range(Range("a10"), Range("a10").End
(xlDown)).Cells.Count
Dim tabl()
Dim tabl2()
For cpt = 1 To n
ReDim Preserve tabl(n)
ReDim Preserve tabl2(n)
tabl(cpt) = ActiveCell.Offset(cpt - 1, 0)
tabl2(cpt) = ActiveCell.Offset(cpt - 1, 1)
MsgBox tabl(cpt)
MsgBox tabl2(cpt)
Next
End Sub

Camille

-----Message d'origine-----

Bonjour !

un grand merci si qcq peut me dépanner !

J'ai un tableur excel (97) avec 2 colonnes
1 colonne avec des nom de VARIABLEs (déjà definies dans
le

code)

1 colonne avec des valeurs que doivent prendre ces
variables à un moment donné .

j'ai beau chercher (mais je ne dois pas être très doué)
mais je ne trouve pas de code me permettant de mettre a
jour mes variables à partir de ce tableau

Autrement dit si dans une cellule d'excel il y a le nom
d'une variable je n'arrive pas à renseigner cette
variable



................ et ça m'enerve !!

merci d'avance

AR
.

.





Avatar
finopat
Arf, dans la précipitation (j'esseyais un nouveau lecteur de news quelle
émotion !!):

il faut bien entendu faire dim c as range
avec toute mes excuses !!
Patrice

"finopat" a écrit dans le message news:

Bonjour,
Si j'ai bien compris, il suffit d'activer la cellule sur laquelle tu
travailles :

Dim c as object

For each c in range("liste_variable").cells
c.activate
lavariable=c
lavaleur=C.offset(0,1)
...... ke reste de ta macro next c

J'espère que c'est cela.
Patrice

Le Tue, 29 Jul 2003 04:11:32 -0700, Alain Rousseau a
écrit:


effectivement je ne suis pas très clair, et je prends un exemple avec 3
variables
age,nom,prenom


1 er colonne le nom des variables
EX CELLULE A10------> "Age"-----> cellule B10-> 25
A11------> "NOM"-----> cellule B11-> "DUPONT"
A12------> "PRENOM"--> cellule B12-> "JEAN"

je voudrai pouvoir renseigner mes variables par une routine anlysant la
colonne a et la colonne b du type
en admettant qe la liste des varaible en a s'appelle "liste_variables"


For each c in range("liste_variable").cells
lavariable=c
lavaleur=C.offset(0,1)
je ne sais pas affecter lavaleur à lavariable

next c


Merci

AR







--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/



Avatar
Alain Rousseau
merci de ton aide mais cela ne marche pas, ou tout au
moins ne correpond pas à ce que je souhaite faire. je
reprends ci dessous la réponse que je viens de faire à
camille


sur excel j'ai une liste de noms en colonne qui
reprennent

des noms de variables du code VB ex AGE, NOM, PRENOM etc

cette liste qui peut être relativement importante
est designé sous le nom "liste_variables"

dans la colonne d'a coté se trouvent les valeurs

correspondantes

la routine que je souhaite construire serait de la forme


For each c in range("liste_variables").cells
nom_variable=c
valeur_variable =c.offset(0,1)

je bute sur code permettant l'affectation de la valeur a
la variable
dans l'exemple Age,nom, prénom la premiere itération doit
donner au même resultat que le code suivant
age=c.offset(0,1)
et la deuxieme nom=C.offset(0,1)

next c






-----Message d'origine-----
Bonjour,
Si j'ai bien compris, il suffit d'activer la cellule sur
laquelle tu

travailles :

Dim c as object

For each c in range("liste_variable").cells
c.activate
lavariable=c
lavaleur=C.offset(0,1)
....... ke reste de ta macro next c

J'espère que c'est cela.
Patrice

Le Tue, 29 Jul 2003 04:11:32 -0700, Alain Rousseau
a

écrit:


effectivement je ne suis pas très clair, et je prends
un exemple avec 3


variables
age,nom,prenom


1 er colonne le nom des variables
EX CELLULE A10------> "Age"-----> cellule B10-> 25
A11------> "NOM"-----> cellule B11-> "DUPONT"
A12------> "PRENOM"--> cellule B12-> "JEAN"

je voudrai pouvoir renseigner mes variables par une
routine anlysant la


colonne a et la colonne b du type
en admettant qe la liste des varaible en a
s'appelle "liste_variables"




For each c in range("liste_variable").cells
lavariable=c
lavaleur=C.offset(0,1)
je ne sais pas affecter lavaleur à lavariable

next c


Merci

AR







--
Using M2, Opera's revolutionary e-mail client:
http://www.opera.com/m2/

.




Avatar
finopat
Re bonjour, voici le code qui fonctionne chez moi :


Sub essai()
Dim Cell As Range

For Each Cell In Range("liste_variable").Cells
nom_variable = Cell.Value
valeur_variable = Cell.Offset(0, 1).Value
Next Cell

End Sub
Bonne journée

Le Wed, 30 Jul 2003 03:00:37 -0700, Alain Rousseau a
écrit:

merci de ton aide mais cela ne marche pas, ou tout au moins ne correpond
pas à ce que je souhaite faire. je reprends ci dessous la réponse que je
viens de faire à camille


sur excel j'ai une liste de noms en colonne qui
reprennent des noms de variables du code VB ex AGE, NOM, PRENOM etc


cette liste qui peut être relativement importante
est designé sous le nom "liste_variables"

dans la colonne d'a coté se trouvent les valeurs

correspondantes

la routine que je souhaite construire serait de la forme


For each c in range("liste_variables").cells
nom_variable=c
valeur_variable =c.offset(0,1)

je bute sur code permettant l'affectation de la valeur a la variable
dans l'exemple Age,nom, prénom la premiere itération doit donner au même
resultat que le code suivant age=c.offset(0,1)
et la deuxieme nom=C.offset(0,1)

next c






-----Message d'origine-----
Bonjour,
Si j'ai bien compris, il suffit d'activer la cellule sur
laquelle tu

travailles :

Dim c as object

For each c in range("liste_variable").cells
c.activate
lavariable=c
lavaleur=C.offset(0,1)
....... ke reste de ta macro next c

J'espère que c'est cela.
Patrice

Le Tue, 29 Jul 2003 04:11:32 -0700, Alain Rousseau
a

écrit:


effectivement je ne suis pas très clair, et je prends
un exemple avec 3


variables
age,nom,prenom


1 er colonne le nom des variables
EX CELLULE A10------> "Age"-----> cellule B10-> 25
A11------> "NOM"-----> cellule B11-> "DUPONT"
A12------> "PRENOM"--> cellule B12-> "JEAN"

je voudrai pouvoir renseigner mes variables par une
routine anlysant la


colonne a et la colonne b du type
en admettant qe la liste des varaible en a
s'appelle "liste_variables"




For each c in range("liste_variable").cells
lavariable=c
lavaleur=C.offset(0,1)
je ne sais pas affecter lavaleur à lavariable

next c


Merci

AR







-- Using M2, Opera's revolutionary e-mail client:
http://www.opera.com/m2/

.







--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/