Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA redim de tableau

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

J'ai un petit souci pour redimensionner des tableaux, je m'explique

je cherche à faire un tableau dynamique contenant d'autres tableaux.

a travers une boucle je voudrais rajouter une colonne à chaque tableau secondaire du tableau principal.

Mais je ne dois pas avoir la bonne syntaxe.

voici mon code simplifié à l'extreme :




la ligne en défaut est celle ci :

redim preserve tabloS(i)(1 to ubound(tabloS(i)),1 to 2)'MAUVAISE SYNTAXE

auriez vous une petite idée pour cette syntaxe.

d'avance je vous en remercie.

salut

Message édité par: hervé, à: 24/01/2006 10:39
 

Jam

XLDnaute Accro
Salut Hervé,

Bah qu'est-ce qu'y t'arrive, toi, avoir du mal avec des tableaux

Bon, ça fait longtemps que j'ai pas jonglé avec les tableaux donc pas une soluce mais une direction:
TabloS() a 2 dimension cf ton Dim. C'est donc cette dimension que tu dois redimensionner. Or là c'est la dimension elle-même que tu cherche à dimensionner. Donc t'a un problème. En fait tu attribu à un élément de ton tableau TabloS(1) un Range, puis au second TabloS(2) un autre Range. En fait tu n'as pas besoin de redimensionner TabloS(1 to 2) mais Tablo1() et Tablo2().

Je sais pas si j'ai été très clair - ou si je n'ai pas bien saisi ce que tu voulais faire - mais j'espère tout de même que cela t'aidera.

Bon courage
 

Hervé

XLDnaute Barbatruc
bonjour messieurs

Merci de vous intéresser à mon sujet.

oui pascal c'est bien la 2ème dimension que je redimensionner à travers ce code :

1 to ubound(tabloS(i)),1 to 2

Bien d'accord avec toi jam c'est bien tablo1 et 2 que je veux redimensionné (tabloS n'a qu'une seule dimension).

En somme, je suis bien d'accord avec vos conclusions, mais vous n’auriez pas une petite solution sous la main, pour aider un petit gars dans la mouise ?

Ou, dois-je rester tout ma vie avec cette question existentielle : Comment qu’on fait le vba pour redim ces p....n de tablo.

A moins que ce ne soit pas possible ?

salut
 

dg62

XLDnaute Barbatruc
Bonjour hervé, jam, pascal


Note Lorsque vous utilisez le mot clé Preserve avec un tableau dynamique, vous pouvez uniquement modifier la limite supérieure de la dernière dimension, et non le nombre de dimensions.

je crois bien que ce soit impossible
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Hervé, Pascal76, Jam, dg62,

Pour ma part, je pense que ta procédure est tout à fait exploitable Hervé. Ton intention me paraît tout à fait conforme à ce que VBA est capable de gérer, à savoir, le redimensionnement de la dernière dimension de tes 2 'sous-tableaux'.

Ci-dessous 2 solutions qui devraient pouvoir contourner cet unique problème de syntaxe.

La première solution utilise un simple Tableau Variant intermédiaire (TabTemp ) :

La deuxième solution, marche selon le même principe puisqu'elle consiste à passer le tableau 'indicé' en argument par référence à une procédure chargée du redimensionnement des tableaux :
Par ailleurs, l'utilisation de Option Base 1 en entête de module simplifierait sans doute la syntaxe davantage...

Cordialement,

PS : Hervé, .... MDR pour 'TabloS' !
 

Hervé

XLDnaute Barbatruc
salut didier


purée, que tout devient simple quand on vois ta soluce.

Admiratif

je vais opter pour la soluce sous routine, plus fun

merci l'ami

salut

PS : j'espère bien qu'il t'a fait rire mon TabloS, c'etait son seul but.

dans mon code, je te rassure, j'utilise mon bon vieux tablores
 

Discussions similaires

Réponses
11
Affichages
335
Réponses
12
Affichages
284
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…