Redimensioner un array (ReDim)

Résolu
Joke758 Messages postés 34 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 6 juin 2008 - 12 mai 2007 à 21:06
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 13 mai 2007 à 00:36
Pourquoi cet exemple ne marche pas? J'essaie de Redimensionner un array mais je ne sais pas comment. Merci!

Private Sub form_load()
Dim intArray(10) As Integer
ReDim Preserve intArray(11)
ReDim Preserve intArray(12)
ReDim intArray(10)
End Sub
A voir également:

6 réponses

Joke758 Messages postés 34 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 6 juin 2008
12 mai 2007 à 21:21
J'ai eu le même problème que toi. Si tu utilise Dim, tu ne peux pas le redimensioner car il est déjà dimensioner. Alors utilise Redim partout.

Private Sub form_load()
ReDim intArray(10) As Integer
ReDim Preserve intArray(11)
ReDim Preserve intArray(12)
ReDim intArray(10)
End Sub
Voilà!
3
Joke758 Messages postés 34 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 6 juin 2008
12 mai 2007 à 21:21
Merci Joke758!
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
12 mai 2007 à 22:30
Lol le type qui s'auto répond ^^
Sauf que ce n'est pas exact !
Redim ne déclare rien du tout !
Essaie un peu ton code en mettant "Option Explicit On" au dessus du fichier en cours...
Je suis d'ailleurs assez étonné qu'il te laisse mettre Redim ... As Integer, tu es sur que ca marche ?
Je ne fais plus de vb6 depuis un bout de temps, mais je crois que la vraie solution à ton problème est de déclarer ton tableau sans préciser la taille avec dim, puis tu le redim tout de suite, je pense me rappeler que ca marchait comme ca...

->
Dim intArray() as integer
Redim intArray(10)

<hr size="2" width="100%" />Julien.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 mai 2007 à 00:12
Joke758, tu as réussi à me faire sourire avec tes questions/réponses....
Salut Julien

Comme dit Julien, tu ne dois pas mettre de taille à ton tableau de base.
Ensuite, tu peux utiliser Redim et Redim Preserve

Normalement, j'y vais ainsi
Dim Tablo() as ...Whatever
Redim Tablo(0)  ' à mettre au début de la procédure ou du programme selon le cas
                          ' ça initialise et vide le tableau

Ensuite Redim Preserve Tablo(i)  ' i étant un Index où on est rendu
                                                   ' on peut aussi utiliser UBound

MPi
0

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

Posez votre question
Utilisateur anonyme
13 mai 2007 à 00:22
Non MPI, Redmi Tablo(0) initialise le tableau contenant un élément.
Le tableau est vide par défaut.
Pour le remettre à vide après utilisation, on utilise Erase tablo.




__________
 Kenji
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 mai 2007 à 00:36
Tu as tout à fait raison Charles.
Y a-t-il un Rewind ou un Undo ici ? 

MPi
0
Rejoignez-nous