Création de variables et affectation valeur dans une boucle???

[Résolu]
Signaler
Messages postés
24
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
2 octobre 2008
-
Messages postés
24
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
2 octobre 2008
-
Bonjour,

Je dispose d'un tableau contenant 3 colonnes:
   Première colonne:   nom d'un point (ex: O, A, B..)
   Deuxième colonne: abscisse du point (valeur numérique)
   Troisième colonne: ordonée du point (valeur numérique)

Je voudrais créer les variable xO, yO, xA, yA, xB, yB automatiquement, c'est à dire dans une boucle FOR par exemple...
J'ai écrit le code suivant (qui ne marche bien entendu pas!!!):

Dim temp as string
For Each cell In Range("B89:B91")
temp = cell.Value
"x" & temp = cell.Offset(0,1)
"y" & temp = cell.Offset(0,2)
Next cell

...et je vous serait très reconnaisasnt si l'un d'entre vous prenait les 2 minutes nécessaires à la résolution de ce problème de débutant qui commence sérieusement à m'énerver! (pour info, ça doit bien faire 2 heures que je cherche, ne riez pas )

Merci d'avance!

4 réponses

Messages postés
24
Date d'inscription
mercredi 10 juillet 2002
Statut
Membre
Dernière intervention
2 octobre 2008
1
Merci pour vos réponses, je vais en effet passer par des tableaux...

Bonne programmation!
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
Sous VB, on ne peut pas créer de noms de variables à la volée.
Par contre, sous Excel, on doit pouvoir 'nommer' une cellule (*), à condition que le nom ne porte pas confusion avec la syntaxe Ligne-Colonne de Excel : par exemple, impossible de créer un nom comme 'in3' puisque 'in' peut être aussi une colonne.
Apparemment, les colonnes ne vont 'que' jusqu'à 'iv' et les lignes ne semble pas avoir de limite (mémoire).

(*) Menu Insertion, Nom, Définir : Tu le fais à la main tout en enregistrant une macro et tu regardes ensuite quel code il utilise, tu n'auras plus qu'à repomper ce code en le paramétrant.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Pourquoi ne pas créer tes variables d'avance ?
Ou encore un ou des tableaux ?

MPi
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

Jack :
Apparemment, les colonnes ne vont 'que' jusqu'à 'iv' et les lignes ne semble pas avoir de limite (mémoire).
Il y a bien 256 colonnes (valeur d'un byte) mais c'est aussi limité en ligne : 65536 lignes (valeur d'un Integer)

fredieuric :
je ne vois pas vraiment l'intérêt de nommer des variables dynamiquement (impossible donc, comme le précise Jack). Selon tes besoins, une déclaration de tableau, des Redim Preserve, et ça devrait faire l'affaire.
Si tu veux plus d'infos, donnes-en également car ton exemple ne se passe que sur 3 cellules.

Pour infos, les tableaux sont des variables avec index.
Pour utiliser les tableaux, regarde mon second message sur Ce Topic.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--