J'ai un petit souci de : "l'indice n'appartient pas à la sélection"
- J'ai un tableau dynamique :
Dim elid()
J'ai une boucle qui va remplir ce tableau. De sorte, que je ne suis pas capable de dire combien de valeurs seront contenues dans le tableau. Je ne peux donc pas utiliser ReDim. Mais du coup il lui manque une dimension dès que i=1. Comment puis-je m'en sortir ?
Dim i as integer
Dim j as integer
Dim k as integer
Dim elid()
i = 0
For k = 1 To nbpts - 1
For j = 1 To 3
elid(i) = 30016021 + (j - 1) + (k - 1) * 40
MsgBox (elid(i))
i = i + 1
Next j
pilas31
Messages postés1825Date d'inscriptionvendredi 5 septembre 2008StatutContributeurDernière intervention24 avril 2020 Modifié par pilas31 le 8/08/2013 à 16:44
Bonjour,
Il faut faire le ReDim dans la boucle comme ceci :
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim elid()
i = 0
For k = 1 To nbpts - 1
For j = 1 To 3
ReDim elid(i)
elid(i) = 30016021 + (j - 1) + (k - 1) * 40
MsgBox (elid(i))
i = i + 1
Next j
Next k
Juste une précision le ReDim efface les données du tableau au fur et à mesure.
Si on souhaite conserver les données du tableau (ce qui est le plus souvent le cas) voici la syntaxe :
J'ai 1 question qui se rajoute.
La boucle que j'utilise pour remplir le tableau fait partie d'une procédure que je vais répêter à plusieurs reprise.
Je dois donc mettre le Preserve dans la boucle mais une fois cette première boucle terminée, comment puis-je réinitialiser mon tableau ?
Redim elid(0) ??
merci pour vos réponses
pilas31
Messages postés1825Date d'inscriptionvendredi 5 septembre 2008StatutContributeurDernière intervention24 avril 2020 8 août 2013 à 17:00
Oui, si c'est dans la même procédure pas de problème le premier ReDim sans "Preserve" efface les données.