Petit probleme pour ajouter une ligne a un tableau dinamic a deux dimention

jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006 - 19 oct. 2005 à 19:37
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006 - 20 oct. 2005 à 01:02
Bonsoir, voila je doit construire un graphique et pour cela je doit
remplir un tableu a deux dimmention. j'ai donc déclarer un tableau :



Dim arrData()



Puis pour le remplir, je fais une boulce, a la fin de cette boucle, le
tableau a une taille qui m'ets inconue. c'est pourquoi j'ai fait un
tableau dinamique et que j'essaye de rajouter une lignes a chaque fois
que j'en ai besoin. voila ce que ca donne:



ReDim arrData(10, 1) ' je met 10 ligne et une colone dans mon tableau

Do




'arrData(CptLigne, CptColone) = "label " & CptColone '&
Format(Dat, "h:m")

CptColone = CptColone + 1 'passe a la seconde colone

arrData(CptLigne, CptColone) = enreg("TEMPERATURE_SONDE")



ReDim Preserve
arrData(1, UBound(arrData, 1) + 1) 'fonction qui rajoute une ligne

CptLigne = CptLigne + 1 'saute une ligne

CptColone = CptColone - 1 ' revien a la premiere colone

enreg.MoveNext

datej = Format(enreg("DATE_HEURE"), "d/m/yyyy")

HeureJ = Format(enreg("DATE_HEURE"), "h:m")



Loop While (JFin = datej And HFin >= HeureJ)



Voila mon code, ne chercher pas d'erreur dedans car avec un tableau
normal il marche bien, j'ai juste un probleme a la ligne : ReDim
Preserve arrData(1, UBound(arrData, 1) + 1) Normalement
elle est censser me rajouter une ligne sans effacer le reste du tableur
mais ca plante...



Pouvez vous me dire pourquoi et aussi comment je pourrais faire marcher mon porgramme





Merci beaucoup d'avance Baptiste

6 réponses

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
19 oct. 2005 à 20:09
Violent Ken

Salut.
Ben en fait, tu ne peux pas utiliser Preserve avec un tableau à plusieurs dimensions
@+
0
jbbordas87 Messages postés 49 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 2 mars 2006
19 oct. 2005 à 22:01
Donc ce que je veux faire est impossible ou il exoste une autre solution pour faire un tableau a deux entrée non statique??



Merci Baptiste
0
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
19 oct. 2005 à 22:04
Violent Ken

Eh bien c'est impossible directement, mais tu peux "sauvegarder" ta matrice arrData dans une autre matrice, changer la taille de arrData, et remettre les valeurs de ta "matrice de suavegarde" dans arrData. Un peu plus long, mais fonctionnel.
(matrice désigne une liste à plusieurs dimensions)
@+
0
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006
20 oct. 2005 à 00:53
Ou tu peux faire une prévision ... déclarer ton tableau plus grand que
nécessaire, et incrémenter une variable count pour
l'affichage.... au lieu d'aller a uboud pour aficher ton tableau
tu iras a count...






Rien ne sert de courir, il faut partir à point.
0

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

Posez votre question
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006
20 oct. 2005 à 00:58
Autre idée,

tu te fais un tableau de type...

Public Type tGraph

x As Single

y As Single

End Type



dim arrData as tGraph

redim preserve arrData(10)



arrData(0).x=1

arrData(0).y=1.5

...

Rien ne sert de courir, il faut partir à point.

&
0
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006
20 oct. 2005 à 01:02
remarque:La déclaration du type doit etre faite dans un module ou dans la section globale d'une form
Rien ne sert de courir, il faut partir à point.

&
0
Rejoignez-nous