Pas compliqué...cette classe utilise la fonction Rnd pour faire certaines choses dont j'avais besoin, par exemple créer un nombre aléatoire rapidement avec un min, max et un intervalle ; aussi, à l'aide d'un tableau comme argument, je pouvais décider du nombre d'occurence de chacun de ces éléments....enfin, voyez les fonctions , c'est plus clair:
(création de l'objet et méthode de "construction") :
Dim objRandom as new Random
Call objRandom.setPattern(min,max,intervalle)
Call objRandom.setList(tableau, nbre de répétition)
(On peut avoir un nouveau nombre aléa en appelant) :
ObjRandom.GetRandomInteger (avec setPattern)
ObjRandom.GetRandomFromList (avec setList)....
y'a un exemple dans le zip...
si ça peut aider qqn..
Source / Exemple :
Option Explicit
Dim vMin As Integer
Dim vMax As Integer
Dim vInterval As Integer
Dim vRepetition As Integer
Dim vList As Variant
Dim vCounterList() As Integer
Private Sub Class_Initialize()
Randomize
End Sub
Public Function GetRandomInteger() As Integer
Dim X As Integer
X = (Rnd * Int((vMax - vMin) / vInterval))
GetRandomInteger = X * vInterval + vMin
End Function
Public Function GetRandomFromList() As Variant
Dim vTemp() As Integer
Dim X As Integer
Dim i As Integer
Dim n As Integer
For i = 1 To UBound(vList)
If vCounterList(i) < vRepetition Or vRepetition = 0 Then
n = n + 1
ReDim Preserve vTemp(1 To n)
vTemp(n) = i
End If
Next i
If n = 0 Then
GetRandomFromList = -1
Exit Function
End If
X = (Rnd * (n - 1)) + 1
vCounterList(vTemp(X)) = vCounterList(vTemp(X)) + 1
GetRandomFromList = vList(vTemp(X))
End Function
Public Sub SetPattern(Min As Integer, Max As Integer, Interval As Integer)
vMin = Min
vMax = Max
vInterval = Interval
End Sub
Public Sub SetList(List As Variant, Optional Repetition As Integer)
Dim i As Integer
ReDim vCounterList(1 To UBound(List) + 1)
vList = List
For i = 1 To UBound(List) + 1
vCounterList(i) = 0
Next i
vRepetition = Repetition
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.