cs_lecamer
Messages postés9Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention31 juillet 2008
-
31 juil. 2008 à 11:16
cs_lecamer
Messages postés9Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention31 juillet 2008
-
31 juil. 2008 à 15:34
Bonjour ,
ma question est la suivante.
peut on déclarer un tableau à deux dimensions accessible dans toute l'application (donc en global),et si oui comment.
j'ai essayé tout ce qui me vient en tête :
<!-- BEGIN TEMPLATE: bbcode_code -->
global tableau()() as string
global tableau(,)as string
global tableau(6,) as string 'en connaissant une dimension
<!-- END TEMPLATE: bbcode_code -->et tjrs une erreur.
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 31 juil. 2008 à 11:25
Bonjour
Oui il faut bien déclarer une des deux dimensions dans la déclaration Global ou Public dans un module
Et dès que l'on a besoin de remplir le tableau étendre ce dernier en demandant de conserver les données déjà enregistré avec Preserve, soit :
Redim Preserve tableau(6,i+1) si i est la dimension précedente
cs_lecamer
Messages postés9Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention31 juillet 2008 31 juil. 2008 à 11:30
C'est exactement ce que je fais,mais en fait,j' ai une erreur de compilation lorsque je tape ceci :
global tableau(6,) as string
il me dit , attendu:expression
je comprends pas
cs_lecamer
Messages postés9Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention31 juillet 2008 31 juil. 2008 à 13:15
effectivement ce que je fais c'est :
dans un moule je declare
global tableau () as string
ensuite dans une fonction j'ai
private sub sauve_click()
redim preserve tableau (5,2)
.....' je peux utiliser "tableau" ici et modifier la taille du 2ème indice à volonté et ss pb
jusqu' à là ok
Mais dès que j'appelle par exemple sub captureval (), dans laquelle je veux utiliser les données de "tableau"=>impossible
je n'ai plus de données.
Initialement je pensais qu'ayant déclaré "tableau" en global,tout se passerait bien,mais non.
C'est pourquoi je cherchais la possibilité de déclarer en global un tableau dynamique.
Je pênse que ce qui se passe c'est que dans mon cas, redim preserve tableau (5,2) se faisant dans la fonction sauve_click,"tableau" est considéré comme étant une déclaration locale,malgré le global tableau () as string.
Donc le problème est identifié,mais la solution n'est toujours pas trouvé
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 31 juil. 2008 à 13:59
'module du formulaire
Option Explicit
Dim tableau() As String
Private Sub sauve_click()
ReDim Preserve tableau(10, 4)
tableau(1, 1) = "A"
CAPTURE
'résultat "A"
End Sub
Private Sub CAPTURE()
MsgBox tableau(1, 1)
End Sub
'si ta sub CAPTURE est quelque part dans un autre 'module il faut que
'-le tableau soit Public et donc déclaré dans un module 'géneral
'-ta sub CAPTURE soit Public déclarée elle aussi dans un 'module general.
'module du formulaire
Option Explicit
<strike>Dim tableau() As String</strike>
Private Sub Command1_Click()
ReDim Preserve tableau(10, 4)
tableau(1, 1) = "A"
CAPTURE
'résultat "A"
End Sub
<strike>Private Sub CAPTURE()
</strike> <strike>MsgBox tableau(1, 1)
End Sub</strike>
'module general donc
Option Explicit
Public tableau() As String
Public Sub CAPTURE()
MsgBox tableau(1, 1)
End Sub
'j' y arrive sans passage de paramètre.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
cs_lecamer
Messages postés9Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention31 juillet 2008 31 juil. 2008 à 15:34
j' ai fais le passage en paramètre,ca m'a obligé à changer la signature de la fonction,ce que je ne voulais pas initialement,mais en tout cas ca marche.
Merci pour votre aide et merci si a libre_max pour la solution proposée et qui marche.