XL 2016 Incrémenter valeur à un tableau par boucle for

BARNS

XLDnaute Junior
Bonjour tout le monde,

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 ;) .


Merci!
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
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.
 

Pièces jointes

  • ListeAléat.xlsm
    377.5 KB · Affichages: 10

BARNS

XLDnaute Junior
Bonjour Danreb,

J'ai formulé mon code comme ci car le problème est le même que celui que je rencontre dans mon projet.

Les nombres aléatoire représente l'incertitude des choix des utilisateurs dans mon projet.

Je n'ai pas partagé mon projet car il y a beaucoup de bruit qui ne concerne pas le problème.

Merci de ton retour,

Je vais tenter de trouver ma réponse dans ton code !!!
 

BARNS

XLDnaute Junior
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
 
Dernière édition:

BARNS

XLDnaute Junior
Youuupi!
VB:
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
Merci :)

Je mets la solution pour ceux que ca intéresse
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth