Tableau dynamique : Erreur 9 : l'indice n'appartient pas à la selection

Bonjour,

Question basique: comment remplit-on un tableau dynamique ?

Cet exemple de code me renvoi Erreur d'execution 9 : l'indice n'appartient pas à la selection lors de la 2 eme itération dans la boucle.

Sub test()
Dim Table() As Integer
Dim i As Integer

ReDim Table(i)

For i = 0 To 5
Table(i) = i
Next

End Sub

Merci,

Cdt

Slt Carlton,

essaie comme ca

Sub test()
Dim Table() As Integer
Dim i As Integer

For i = 0 To 5
ReDim Preserve Table(i)
Table(i) = i
Next i

End Sub

Bonjour Carlton, m3ellem1,

Cet exemple de code me renvoi Erreur d'execution 9 : l'indice n'appartient pas à la selection lors de la 2 eme itération dans la boucle.

Dim Table() As Integer => on déclare une tableau d'entiers (avec apostrophe)

Dim i As Integer => on déclare i entier sa valeur est alors 0

ReDim Table(i) => on donne une taille au tableau : celle de i qui vaut 0 : donc 0 à 0 un seul indice

Table(i) = i => Itération 1 , i= 0 ça passe. Itération 2 , i= 1 ça ne passe plus puisqu'on a pas prévu plus d'un indice.

Soit on utilise un tableau dynamique; méthode proposée par m3ellem1.

Soit si on connait à l'avance la taille que devra faire le tableau, un tableau fixe:

ReDim Table( 5 )

Voir aussi l'aide sur dim et déclaration des tableaux

Bonne soirée

Bonjour,

Très clair, merci beaucoup.

Pourquoi à t - on besoin de Preserve à cette ligne?

ReDim Preserve Table(i)

Je vois bien que sans ça ca ne marche pas : On obtient 0 sauf pour la dernière itération, mais je ne comprends pas ce qui se passe quand on ne met pas le Preserve.

Merci,

Cdt

Slt,

l'instruction ReDim modifie la taille des tableaux, mais efface les anciens éléments.

Ajoutez le mot clé Preserve pour agrandir un tableau dynamique tout en conservant les valeurs existantes. Vous pourrez ainsi modifier la taille de la dernière dimension d'un tableau sans perdre les données déjà stockées dans les éléments d'origine.

C'est clair pour moi. Merci beaucoup!

Rechercher des sujets similaires à "tableau dynamique erreur indice appartient pas selection"