Soyez le premier à donner votre avis sur cette source.
Vue 4 919 fois - Téléchargée 313 fois
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.