jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014
-
5 déc. 2005 à 02:34
jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014
-
8 déc. 2005 à 23:28
Je suis débutant en visual Basic.
Comment procéder pour faire passer des tableaux d'une feuille à l'autre.
Puisque PUBLIC ne marche pas!!!
Merci de votre aide à tous
jyd
jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014 5 déc. 2005 à 22:51
Je veux dire de frame à frame par programmation tout simplement. Sans donc utiliser le glisser coller.
Existe-t-il une méthode plus simple que la débrouille en faisant passer une chaine de caractère reprenant toutes les valeurs d'un tableau à 2 ou 3 dimensions de type Array, collées côte à côte.
Suis-je suffisamment clair ?
Merci d'avance
jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014 7 déc. 2005 à 01:14
Je m'explique par des exemples:
Dans une première feuille appelée frmFeuille1
- en tête de feuille, je dimensionne un tableau à 2 dimensions
exemple: DIM tableau(10,5)
- dans une procédure de cette feuille, je remplis ce tableau avec certaines valeurs
exemple: tableau(5,1)="Valeur encodée"
- Dans cette feuille, quand j'appelle à tout moment un élément de tableau, cela
fonctionne bien
test = tableau(5,1), j'obtiens bien dans test, le contenu "Valeur encodée"
Par contre, si, d'une autre feuille nommée frmFeuille2,
j'appelle le contenu de tableau(5,1), cela ne marche pas :
test = frmFeuille1.tableau(5,1),
vu que je ne peux pas insérer l'instruction PUBLIC tableau(10,5) dans frmFeuille1
(l'instruction Public n'autorise pas les tableaux)
Vb Lover
Messages postés221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 20105 7 déc. 2005 à 11:40
alors 2-3 p'tites choses:
1) le DIM c'est à mettre à l'intérieur des procédures. en tête de feuille il faut mettre un private. même si chez toi ça a l'air de marcher avec un DIM, c'est mieux si tu mais un PRIVATE, on ne sait jamais...
2) dans les FORM, même si tu mets l'option PUBLIC (disons pour une variable en DOUBLE), ce n'est pas vraiment une variable publique. en effet, pour l'appeler, il faut mettre le nom de la FORM suivi d'un point puis du nom de la variable. ceci n'est pas le cas si tu te crées un module où tu mets tes variables publiques.
3) il faut penser ton programme autrement pour avoir des tableaux publiques. soit tu mets tout dans un même module (je pense que c'est le plus simple), soit tu t'arranges pour passer tes tableaux d'une procédure à une autre comme je l'ai expliqué dans l'autre message, soit tu passes par des classes qui contiennent tes tableaux
jytest
Messages postés314Date d'inscriptiondimanche 27 novembre 2005StatutMembreDernière intervention22 décembre 2014 7 déc. 2005 à 23:38
ok pour les points 1 et 2. merci pour le rappel.
Par contre, j'ai beau essayer de définir un tableau en PUBLIC, je reçois toujours une erreur dans la feuille qui est destinée au remplissage.
Donc de toute évidence, pas possible d'accéder à ce tableau depuis une auttre feuille.
Puis-je me permettre de me faire un petit exemple suivant ma précédente intervention.
D'avance, je t'en remercie.
Je compte sur toi pour m'éclaircir cette chose.
jyd
Vb Lover
Messages postés221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 20105 8 déc. 2005 à 11:08
déclarer un tableau publique n'étant pas possible, et vu que tu as vraiment l'air de vouloir faire qqch du style, je procéderais ainsi:
° dans un module quelconque, tu mets au début des déclarations (pour un tableau 10x5 de Double par exemple):
public DIM_X=10
public DIM_Y=5
public Tableau as New CTableau
° tu te crées un module de classe CTableau, et tu y mets le code suivant
option base 1
private m_Tableau(DIM_X,DIM_Y) as Double
public property get Valeur(byval i as Integer, byval j as Integer) as Double
Valeur=m_Tableau(i,j)
end property
public property let Valeur(byval i as Integer, byval j as Integer, byval Value as double)
m_Tableau(i,j)=Value
end property
° tu peux ensuite depuis n'importe où prendre les valeurs de ton tableau où les donner: