Déclaration tableau bi-dimensionnel

Fermé
lucaspzt - 6 mars 2014 à 15:47
eriiic Messages postés 24576 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 30 mai 2024 - 9 mars 2014 à 19:04
Bonjour,

Je m'adresse à vous chers amis car j'ai un petit soucis :

Dans une macro longue et fastidieuse, je me vois dans l'obligation d'utiliser un tableau à 2 dimensions. Le fait est que lorsque l'on veut redimensionner un tableau à 2 dimensions, seule la dernière dimension peut être modifiée.

Concrètement, mon soucis se situe au niveau de la 1ere dimension, qui certes s'avère être constante lorsque je veux utiliser mon tableau mais c'est une constante que je détermine dans la 1ere partie de ma macro à l'aide d'une variable qui s'incrémente. Donc lorsque je cherche à redimensionner mon tableau, erreur! car meme si la variable représentant la taille de la première dimension n'est plus amenée à changer, toujours est il qu'elle n'est pas déclarée en tant que constante! En gros y a t'il un moyen de déclarer une constante à partir d'une variable qui ne varie plus?


code pour illustré :

dim tailledim1 as integer

... diverses opérations qui modifie tailledim1....

... tailledim1 ne varie plus par la suite

dim montab() as string


redim montab(tailledim1, x)


(avec x qui va varier, mais ce n'est pas un soucis car la 2eme dimension est modifiable à volonté!)


et la évidemment erreur! tailledim1 n'est pas une constante donc ca ne marche pas!


J'ai bien tenté de faire un :

const tailledim1bis = tailledim1 pour ensuite passer tailledim1bis en paramètre mais évidemment la déclaration d'une constante ne marche pas ainsi


quelqu'un aurait il une idée?


2 réponses

f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
6 mars 2014 à 16:05
Bonjour,


et la évidemment erreur! tailledim1 n'est pas une constante donc ca ne marche pas! Non, pas question de constantes, les deux dimensions sont redimensionnables, ex:

Sub test()
Dim tabl() As String

For a = 1 To 10
x = x + 1
y = y + 1
Next a

ReDim tabl(x, y)

End Sub
1
eriiic Messages postés 24576 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 30 mai 2024 7 221
Modifié par eriiic le 9/03/2014 à 19:04
Bonjour,

Le fait est que lorsque l'on veut redimensionner un tableau à 2 dimensions, seule la dernière dimension peut être modifiée.
Ca c'est si tu fais Redim Preserve montab(tailledim1, x)

eric

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
0