Les tableaux de feuille à feuille

jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014 - 5 déc. 2005 à 02:34
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 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

9 réponses

jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
5 déc. 2005 à 10:57
Bonjour,

Quand tu dis passer d'une feuille à l'autre, tu veux dire un copier/coller???



jpleroisse
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 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

jyd
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
5 déc. 2005 à 22:53
Ajoute au message précédent...

Vu que l'instruction PUBLIC ne fonctionne pas avec des tableaux à 2 ou 3 indices !!!

jyd
0
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
6 déc. 2005 à 12:07
il me semble que c'est ça que tu cherches:

dans ta première feuille, au début:
private MonTableau(1 to Nx, 1 to Ny) as single


puis tu as une procédure où tu appelles une autre feuille:
...
ProcedureFeuille2 MonTableau()
...

et dans ta feuille 2, tu as une procédure qui s'appelle:
public ProcedureFeuille2(byval Tableau() as single)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 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)

Que faire ???

jyd
0
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
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


bonne chance!
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 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
0
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
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:

ta_variable = Tableau.Valeur(1,1)
Tableau.Valeur(1,1) = ta_variable

j'ai pas vérifier mais ça devrait marcher
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
8 déc. 2005 à 23:28
Merci pour ta très précieuse aide.. Je testerai ce weekend...

jyd
0
Rejoignez-nous