Initiliser un tableau

Freztagada Messages postés 14 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 4 mars 2008 - 7 janv. 2004 à 13:08
Freztagada Messages postés 14 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 4 mars 2008 - 7 janv. 2004 à 15:31
Salut,

Je n'arrive pas a trouver mon bonheur dans l'aide de VBExcel alors je m'adresse aux specialiste.

Je voudrais savoir comment peut-on reinitialiser un tableau. Je m'explique:

Dim A() as long
Dim B() as Long
Dim Temp as ()

For I=1 to 2
'code pour reinitiliaser la variable Temp
select case I
case 1
Temp(1)=1
Temp(2)=2
etc.... (temp a une taille variable)
A=Temp
case 2
Temp(1)=1
Tem(2)=2
Temp(3)=3
etc....(temp a une autre taille)
end select
Next I

Bon, ce code est con, mais ce serait trop long de mettre mon code. Le tout c'est que j'ai besoin de reinitialiser la variable temp en debut de boucle, en sachant que la taille de Temp varie d'un valeur de I a une autre.

Si vous avez une idee, merci d'avance

5 réponses

ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
7 janv. 2004 à 13:37
la fonction redim permet de redimmentionner un tableau en précisant eventuellement si on veut conserver les données d'origine.
0
Freztagada Messages postés 14 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 4 mars 2008
7 janv. 2004 à 14:01
En effet, redim marche...

Je pensais que la fonction conservait les valeurs de l'array.
Reste le probleme qu'on ne peut reinitialiser en une array non dimensionnee (Redim Temp()).
Hors je ne connais pas a priori la taille de mon array (ca depend du traitement dans la boucle.

Merci
0
ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
7 janv. 2004 à 14:18
...parce que tu n'est pas obligé de la redimentionner au debut du prog, tu peux attendre de connaitre la premiere taille.
Sinon tu fais un redim temp(0)
de toute façon, que veux tu qu'il se passe?
0
Freztagada Messages postés 14 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 4 mars 2008
7 janv. 2004 à 14:31
Je m'explique. Dans la boucle, je traite une string pour en extraire des nombres (1, 5, 25...) ou des plages de nombres (15-26). Chaque chiffre est mis dans une ligne ou colonne au fur et a mesure... donc la taille definitive de l'array est variable et connue uniquement a la fin du traitement.
De +, quand la boucle repart, je ne sais pas si la taille de l'array sera plus grand ou plus petite: plus petite, y a pas de pb mais ca va beugue si elle est plus grande.
D'ou mon pb avec le dimmensionnement de l'array...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Freztagada Messages postés 14 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 4 mars 2008
7 janv. 2004 à 15:31
J'ai ttrouve une solution. Je ne touche pas a la taille ni aux valeurs de Temp, sur laquelle je reecris tant que je veux. Il me suffit de redimmensionner les arrays cibles en fin de boucle avec la dimension finale de temp dans ce tour de boucle.

Merci pour l'aide
0
Rejoignez-nous