Partage de tableau dans une Form [Résolu]

Signaler
Messages postés
181
Date d'inscription
jeudi 30 mai 2002
Statut
Membre
Dernière intervention
19 août 2012
-
Messages postés
181
Date d'inscription
jeudi 30 mai 2002
Statut
Membre
Dernière intervention
19 août 2012
-
Bonjour,

J'ai un soucis de 'partage' de variable. En effet, je voudrais placer une déclaration du genre 'Public Tableau() As Byte', mais dans une Form. Ce qui est impossible. Je veux que ce tableau soit partagé car je dois le modifier par une procédure d'un autre module.
Je ne peux pas non plus le déclarer en Global dans un module car il doit être associé à la Form, et cette dernière sera instanciée sans doute plusieurs fois dans la même 'session' de mon programme.

Quelqu'un aurait-il une idée?

titicar

8 réponses

Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Charles Racaud < Ca, il faudra que tu poses la question aux développeurs de VB6 ! Il est impossible de mettre un tableau, un declare, un type en tant que membre public dans un module objet (=form + class) !

titicar < tu peux contourner cette limitation de VB6 en déclarant ton tableau en Private dans ta form et en ajoutant une propriété (en Get et en Set si besoin) pour accéder aux items de ton tableau:

Private Tableau() As Byte

Public Property Get Item(ByVal Idx As Long) As Byte
Item = Tableau(Idx)
End Property

Public Property Let Item(ByVal Idx As Long, ByVal Value As Byte)
Tableau(Idx) = Value
End Property

Et tu utilises comme ceci :

Form1.Item(1) = 10
MsgBox Form1.Item(1)

A noter qu'il faudra ajouter des protection dans les property Get/Set au cas ou l'Idx serait en dehors de la plage du tableau
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,

Pourquoi est-il impossible de déclarer en public un tableau dans une form ?
TaForm.TonTableau(id)...

__________
Kenji
(
Nouveau forum VBA/Office
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Kristof, (salut), en effet, il nous jette au moment de l'exécution.
L'habitude du dotnet

__________
Kenji
(
Nouveau forum VBA/Office
Messages postés
181
Date d'inscription
jeudi 30 mai 2002
Statut
Membre
Dernière intervention
19 août 2012

Bien vu Kristof !
C'est tout bête et je n'y avais même pas pensé !
... Y a des fois où l'on ne voit pas la plus simple évidence...

Merci !

titicar
Messages postés
3
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
10 février 2009

Bonjour,
Ma question est la meme que titicar a une difference pres : je voudrais que mon tableau soit redimensionnable par un Redim Preserve... or ceci m'empeche d'utiliser ta methode Kristof...

Quelqu'un aurait-il une methode de contournement svp ?

Merci d'avance !

Dans la vie il y a 3 types de personnes : celles qui savent compter, et celles qui ne savent pas.
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Pourquoi ca ?
Messages postés
3
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
10 février 2009

Merci j'ai contourne en mettant betement mes array dans un module a part...
J'obtenais un message d'erreur a cause des Redim...

Bonne journee !

Dans la vie il y a 3 types de personnes : celles qui savent compter, et celles qui ne savent pas.
Messages postés
181
Date d'inscription
jeudi 30 mai 2002
Statut
Membre
Dernière intervention
19 août 2012

themuton : Je retombe ici par hasard. C'est vrai que les Redim ne fonctionnent pas. Faut que je regarde ton 'bettement array'... que je n'utilise pas.
Au fait, tu n'as pas mentionné le 3ème type de personne :-)

titicar