Je souhaite créer un tableaux : avec 2 lignes et n colonne (n étant un nombre aléatoire).
Chaque case de la première ligne correspond au numéro de la boucle for
Chaque case de la deuxième ligne correspond a un nombre aléatoire
Je souhaite pouvoir retrouver n'importe quel nombre aléatoire par le biais de numéro d'une boucle et pouvoir l'utiliser en tant que variable.
VB:
Sub tabfor()
Dim n$
Dim i As Byte
n = Int(50 * Rnd) + 2
For i = 1 To n
n = Int(50 * Rnd) + 1
'création du tableau avec i =1 première ccolonne première ligne et n (quand i=1) première colonne deuxième ligne
Next i
End Sub
Je crois que je dois générer une array mais comment incrémenter par boucle je ne sais pas.
La deuxième solution serait de pouvoir changer le nom de mes nombres aléatoire et de les appeler :
n1, n2, n3 ... Et ainsi pouvoir les appeler par leur nom plutôt que les chercher dans un tableau.
J'ai essayé un truc du style n & "i" mais ca ne marche pas ^^
Si quelqu'un sachant une des deux passe par là je suis preneur .
Bonjour.
La ligne 1 des numéros se suivant à partir de 1 me semble inutile parce qu'il est toujours possible d'accéder positionnellement à un élément de tableau de numéro spécifié. Par exemple avec INDEX si c'est dans une plage. Je soupçonne que vous demandiez ensuite à ce qu'il n'y ait pas de doublon dans la liste engendrée.
Ne serait-ce pas un tirage de loto que vous chercheriez à produire ?
Je pense que des choses pourraient vous intéresser dans ce classeur.
Bon je ne comprends pas, j'ai l'impression que c'est hyper simple ce que je demande si on peut me dire ce qui ne va pas dans mon code ca serait top! J'ai beau chercher sur internet ...
VB:
Sub tabfor()
Dim n$
Dim t$
Dim i As Byte
Dim tabarray() As variant
n = Int(50 * Rnd) + 2
For i = 1 To n
t = Int(50 * Rnd) + 1
ReDim tabarray(i)
t = tabarray(i)
Next i
MsgBox tabarray(1)
End Sub
Redim sert à dimensionner un tableau dynamique. Son contenu précédent est effacé.
Pour changer sa dernièrer dimension sans détruire son contenu, c'est Redim Preserve.
Sub tabfor()
Dim n$
Dim t$
Dim i As Byte
Dim tabarray() As Variant
n = Int(50 * Rnd) + 2
tabarray = Array(0)
For i = 1 To n
t = Int(50 * Rnd) + 1
ReDim Preserve tabarray(i)
tabarray(i) = t
Next i
End Sub