J'ai réalisé une variable tableau "TYPE"
cette déclaration de tableau : TMtab(1 To 3) à une dimension
de 3 cases serviront plus tard par appelle dans la procédure
Avec un autre tableau "t()" déclarer avec une variable
de "TYPE" MultiTab ce tableau servira à stoker les
données des tableaux TMtab(1 To 3) dans chacune des
cases du tableau t()
Déclaration du tableau : dim t() as Multitab
Avec la variable Type
code ci-dessous :
VB:
Type MultiTab
TMtab(1 To 3)
End Type
Sub ModuleVariableType()
Dim t() As MultiTab
x = 3
ReDim t(1 To x)
nb = 1
NTab = 1
For i = 1 To x
' Remplissage Mtab
For j = 1 To 3
t(i).TMtab(j) = "Tab" & NTab & "....Case N°" & nb
Next j
nb = nb + 1
NTab = NTab + 1
Next i
col = 1
For a = 1 To x
Cells(1, col).Resize(UBound(t(a).TMtab)) = t(a).TMtab
col = col + 2
Next a
End Sub
La question que je me pose, comment faire la même chose avec un module de classe pour
remplir des tableaux sous le même mode sans être obligé de passer par une Variable Type
Je ne suis pas pressé, j'aimerais connaitre une solution si il y a et partager cela avec d'autre personne que
cela intéresse aussi, je ne manquerais pas de partager cette information des que j’aurais trouvé
enfin si je trouve la solution ;-))
Re : Comment passer en Variable Tableau En "Module De Classe" Evitant "Variable TYPE"
Bonsoir.
De toute façon les tableaux ne sont pas supportés en tant que propriétés dans les modules de classe.
Mais comme variables internes, pas de problème.
Ici le Type MultiTab ne me parait à première vue pas indispensable. Vous pourriez utiliser un tableau à 2 dimensions.
Remarque: je n'ai pas encore ouvert votre classeur.
À +
Re : Comment passer en Variable Tableau En "Module De Classe" Evitant "Variable TYPE"
Bonsoir Dranred,
Vous avez un exemple pour réaliser ce tableau en variables interne dans le module de classe avec un tableau
à deux dimension je n’ai pas l’idée de cette construction. Vous avez un exemple s’il vous plais ?
je vous remercie de m’avoir lu est répondu.
Re : Comment passer en Variable Tableau En "Module De Classe" Evitant "Variable TYPE"
C'est que je ne comprend pas exactement ce que vous voulez faire.
Votre programmation me parait avoir un caractère trop expérimental pour bien représenter à mes yeux vos inquiétudes quant à la faisabilité de certaines choses. Essayez peut être de me présenter tout ça sous un autre angle.
Et partez du principe qu'un module de classe doit être autonome dans la gestion de son contenu: il doit se débrouiller avec ce qu'on lui donne au moyen de méthodes qui lui sont écrites pour cela. Ce qu'il en fait à l'intérieur ne regarde pas l'extérieur. À moins que ce ne soit un tout petit module de classe en quelque sorte passif servant juste à permettre une chose très simple mais normalement impossible, tel que gérer des évènements d'objets éléments d'un tableau.
À +
Re : Comment passer en Variable Tableau En "Module De Classe" Evitant "Variable TYPE"
Bonsoir Dranred,
Jai travailler sur le sujet pour l'instant je suis arrivé a cela :
1 Tableau à 1 dimension "Trest" dont le nombres de cases est redimensionné pour acceuillir un tableau dans chacunes des cases du tableau "Trest".
et cela peux importe la taile des tableaux stoké (1 Dimension ou plus d'une dimension)
Est-il possible de faire la même chose différemment en passant par un module de classe (sans Tableaux emboité).
Pour info le remplissage de ces différent tableaux est remplis avec (des valeurs fictives)
Voici le code :
VB:
Sub Temboitement()
Dim Trest() As Variant
' Variable pour remplissage de T1 (valeur test)
lig = 2
col = 3
Index = 1
nl = 1
nc = 1
' Pour test 3 tableaux différent dans un tableau a une dimension
' T1 = 3 tableaux différent (Ligne est colonne différentes)
' avec le même tableau T1
Dim T1() As Variant
For i = 1 To 3
' nouvelles dimension "T1" pour test
ReDim T1(1 To lig, 1 To col)
For j = 1 To UBound(T1, 1)
For k = 1 To UBound(T1, 2)
T1(j, k) = "Tab" & Index & "..." & "Case L" & nl & " / " & "C" & nc
nc = nc + 1
Next k
nc = 1
nl = nl + 1
Next j
' nouvelles dimension "Trest" pour test
ReDim Preserve Trest(1 To i)
' Transfert T1 dans Une case de Trest
Trest(i) = T1
'MsgBox Trest(i)(1, 1)
' decharge le tableau T1
Erase T1
' Variable pour remplissage de valeur test
lig = lig + 2
col = col + 1
nl = 1
nc = 1
Index = Index + 1
Next i
'MsgBox Trest(1)(1, 1)
' Transfert de ces trois tableaux "T1" dans excel
col = 1
For a = 1 To UBound(Trest)
Cells(1, col).Resize(UBound(Trest(a), 1), UBound(Trest(a), 2)) = Trest(a)
col = col + UBound(Trest(a), 2) + 1
Next a
End Sub
Je ne sais pas si je suis dans les clous ? Si j'ai tous compris mais je voudrais stocker ces différents tableaux non pas dans un tableau a une dimension mais indépendamment à partir d'un appel par un module de classe.
Voici le lien que j'ai trouvé : (Je n’ai pas saisie la construction en passant par un module de classe)
Chapitre = IV-A-6. Propriété renvoyant un tableau
1) IV-A-6-a. Exposition d'un tableau typé (Ici en type)
2) IV-A-6-b. Exposition d'un Variant (Ici en Variant)
lien : Office et les modules de classes
Je vous ai répondu est je serais ravis d'avoir une réponse de votre part, j'ai eu du mal a la construction de ce principe,
J'ai fait dans ces postes #1 et #5
Variable tableau Type (dans ce premier poste # 1)
Variable tableau Emboité (Ici sur ce poste # 5)
Si, si.
Mais dans votre exemple poste #1 vous aviez plusieurs tableaux de même dimensions. Inutile alors de passer par autre chose, comme un Type, que par un tableau à 2 dimensions. Dès lors qu'on à des choses disparates (tableaux de divers types et dimensions, en nombre et en limites, + objets (mais oui, aussi !) on peut grouper tout cela dans un tableau de Variant, membre de collection voire comme Item de Dictionary.
voyez ce qu'on peut faire ici
À +
Re : Comment passer en Variable Tableau En "Module De Classe" Evitant "Variable TYPE"
Merci Dranred,
J'ai mis le paquet pour comprendre le fonctionnement de ces tableaux imbriqués, c'est quand même hyper puissant.
Aussi par rapport au site developpez il y a un poste avec les modules de classe et variable tableau.
Je n'ai pas compris comment cela fonctionne malgré des efforts et persévérance, peux être vous avez un exemple par rapport à ce qui est écrit sur ce site developpez ? Franchement a force de décrypter tous ces codes je vais ressembler a "Champollion" ;-))
Mais je suis content de me creuser la tête est cela est intéressant. Si vous avez un exemple même dans la même idée que mon exemple, alors je vous remercie car je n’y arrive vraiment pas enfin pour l'instant.
Je vous dis un grand Merci pour m'avoir aiguillé dans la bonne directions des tableaux emboités