Salut le groupe,
Pour une application, je voudrais pouvoir utiliser un tableau à deux
dimention, mais pouvoir redimentionner la deuxième dimention dans une
procédure.
A quel endroit dois je le déclaré ? j'ai essayé dans le module en
global, mais pour la déclaration je dois le déclarer sans dimention
(MaTable()).
Pour le redimentionné, je cherche à faire :
MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux
redimentionner que la dernière dimention (Option explicit 0 : les index
commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D
JLuc
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
GL
Le 03/04/2015 18:06, JLuc69 a écrit :
Salut le groupe, Pour une application, je voudrais pouvoir utiliser un tableau à deux dimention, mais pouvoir redimentionner la deuxième dimention dans une procédure. A quel endroit dois je le déclaré ? j'ai essayé dans le module en global, mais pour la déclaration je dois le déclarer sans dimention (MaTable()). Pour le redimentionné, je cherche à faire : MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux redimentionner que la dernière dimention (Option explicit 0 : les index commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D JLuc
Vous ne pouvez pas redimensionner un tableau, c'est-à-dire une variable déclarée comme Dim Tableau(), mais vous pouvez redimensionner un Variant qui contient un tableau.
Il faut donc déclarer: Dim Tableau (sous entendu: As Variant) Ensuite, ReDim Tableau permet de changer la borne de la dernière dimension uniquement:
ReDim Tableau(1 To 12, 1 To 5)
ReDim Preserve Tableau(1 To 12, 1 To 15)
Mais pas: ReDim Tableau(1 to 8, 1 to 15) seule la dernière dimension est modifiable. C'est une limitation du type.
Le 03/04/2015 18:06, JLuc69 a écrit :
Salut le groupe,
Pour une application, je voudrais pouvoir utiliser un tableau à deux
dimention, mais pouvoir redimentionner la deuxième dimention dans une
procédure.
A quel endroit dois je le déclaré ? j'ai essayé dans le module en
global, mais pour la déclaration je dois le déclarer sans dimention
(MaTable()).
Pour le redimentionné, je cherche à faire :
MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux
redimentionner que la dernière dimention (Option explicit 0 : les index
commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D
JLuc
Vous ne pouvez pas redimensionner un tableau, c'est-à-dire une variable
déclarée comme Dim Tableau(), mais vous pouvez redimensionner un
Variant qui contient un tableau.
Il faut donc déclarer: Dim Tableau (sous entendu: As Variant)
Ensuite, ReDim Tableau permet de changer la borne de la dernière
dimension uniquement:
ReDim Tableau(1 To 12, 1 To 5)
ReDim Preserve Tableau(1 To 12, 1 To 15)
Mais pas: ReDim Tableau(1 to 8, 1 to 15) seule la dernière dimension est
modifiable. C'est une limitation du type.
Salut le groupe, Pour une application, je voudrais pouvoir utiliser un tableau à deux dimention, mais pouvoir redimentionner la deuxième dimention dans une procédure. A quel endroit dois je le déclaré ? j'ai essayé dans le module en global, mais pour la déclaration je dois le déclarer sans dimention (MaTable()). Pour le redimentionné, je cherche à faire : MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux redimentionner que la dernière dimention (Option explicit 0 : les index commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D JLuc
Vous ne pouvez pas redimensionner un tableau, c'est-à-dire une variable déclarée comme Dim Tableau(), mais vous pouvez redimensionner un Variant qui contient un tableau.
Il faut donc déclarer: Dim Tableau (sous entendu: As Variant) Ensuite, ReDim Tableau permet de changer la borne de la dernière dimension uniquement:
ReDim Tableau(1 To 12, 1 To 5)
ReDim Preserve Tableau(1 To 12, 1 To 15)
Mais pas: ReDim Tableau(1 to 8, 1 to 15) seule la dernière dimension est modifiable. C'est une limitation du type.
isabelle
bonjour JLuc,
'--- Redéfinit la taille de la dernière dimension du tableau ReDim Preserve Tableau(1 To 2, 1 To x)
isabelle
Le 2015-04-03 12:06, JLuc69 a écrit :
Salut le groupe, Pour une application, je voudrais pouvoir utiliser un tableau à deux dimention, mais pouvoir redimentionner la deuxième dimention dans une procédure. A quel endroit dois je le déclaré ? j'ai essayé dans le module en global, mais pour la déclaration je dois le déclarer sans dimention (MaTable()). Pour le redimentionné, je cherche à faire : MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux redimentionner que la dernière dimention (Option explicit 0 : les index commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D JLuc
bonjour JLuc,
'--- Redéfinit la taille de la dernière dimension du tableau
ReDim Preserve Tableau(1 To 2, 1 To x)
isabelle
Le 2015-04-03 12:06, JLuc69 a écrit :
Salut le groupe,
Pour une application, je voudrais pouvoir utiliser un tableau à deux dimention,
mais pouvoir redimentionner la deuxième dimention dans une procédure.
A quel endroit dois je le déclaré ? j'ai essayé dans le module en global, mais
pour la déclaration je dois le déclarer sans dimention (MaTable()).
Pour le redimentionné, je cherche à faire :
MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux
redimentionner que la dernière dimention (Option explicit 0 : les index
commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D
JLuc
'--- Redéfinit la taille de la dernière dimension du tableau ReDim Preserve Tableau(1 To 2, 1 To x)
isabelle
Le 2015-04-03 12:06, JLuc69 a écrit :
Salut le groupe, Pour une application, je voudrais pouvoir utiliser un tableau à deux dimention, mais pouvoir redimentionner la deuxième dimention dans une procédure. A quel endroit dois je le déclaré ? j'ai essayé dans le module en global, mais pour la déclaration je dois le déclarer sans dimention (MaTable()). Pour le redimentionné, je cherche à faire : MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux redimentionner que la dernière dimention (Option explicit 0 : les index commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D JLuc
JLuc69
isabelle avait écrit le 03/04/2015 :
bonjour JLuc,
Merci à vous deux.
Finalement, j'ai fais la déclaration en global du module : Dim MaTable
Puis dans le UserForm_Initialize() : ReDim MaTable(1, 0)
Et enfin, à l'endroit où je m'en sert : ReDim Preserve MaTable(1, Ubound(MaTable) + 1)
Et....tout fonctionne :oÞ
'--- Redéfinit la taille de la dernière dimension du tableau ReDim Preserve Tableau(1 To 2, 1 To x)
isabelle
Le 2015-04-03 12:06, JLuc69 a écrit :
Salut le groupe, Pour une application, je voudrais pouvoir utiliser un tableau à deux dimention, mais pouvoir redimentionner la deuxième dimention dans une procédure. A quel endroit dois je le déclaré ? j'ai essayé dans le module en global, mais pour la déclaration je dois le déclarer sans dimention (MaTable()). Pour le redimentionné, je cherche à faire : MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux redimentionner que la dernière dimention (Option explicit 0 : les index commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D JLuc
isabelle avait écrit le 03/04/2015 :
bonjour JLuc,
Merci à vous deux.
Finalement, j'ai fais la déclaration en global du module :
Dim MaTable
Puis dans le UserForm_Initialize() :
ReDim MaTable(1, 0)
Et enfin, à l'endroit où je m'en sert :
ReDim Preserve MaTable(1, Ubound(MaTable) + 1)
Et....tout fonctionne :oÞ
'--- Redéfinit la taille de la dernière dimension du tableau
ReDim Preserve Tableau(1 To 2, 1 To x)
isabelle
Le 2015-04-03 12:06, JLuc69 a écrit :
Salut le groupe,
Pour une application, je voudrais pouvoir utiliser un tableau à deux
dimention,
mais pouvoir redimentionner la deuxième dimention dans une procédure.
A quel endroit dois je le déclaré ? j'ai essayé dans le module en global,
mais
pour la déclaration je dois le déclarer sans dimention (MaTable()).
Pour le redimentionné, je cherche à faire :
MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux
redimentionner que la dernière dimention (Option explicit 0 : les index
commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D
JLuc
Finalement, j'ai fais la déclaration en global du module : Dim MaTable
Puis dans le UserForm_Initialize() : ReDim MaTable(1, 0)
Et enfin, à l'endroit où je m'en sert : ReDim Preserve MaTable(1, Ubound(MaTable) + 1)
Et....tout fonctionne :oÞ
'--- Redéfinit la taille de la dernière dimension du tableau ReDim Preserve Tableau(1 To 2, 1 To x)
isabelle
Le 2015-04-03 12:06, JLuc69 a écrit :
Salut le groupe, Pour une application, je voudrais pouvoir utiliser un tableau à deux dimention, mais pouvoir redimentionner la deuxième dimention dans une procédure. A quel endroit dois je le déclaré ? j'ai essayé dans le module en global, mais pour la déclaration je dois le déclarer sans dimention (MaTable()). Pour le redimentionné, je cherche à faire : MaTable(1, Ubound(MaTable,2)) mais ça ne marche pas, vu que je ne peux redimentionner que la dernière dimention (Option explicit 0 : les index commencent à 0, donc c'est un tableau de 2 * x).
Merci de toute proprosition visant à me faire avancer :D JLuc