Cela est donc une fonction pour alétoiriser un tableau à une dimension, elle peut servir dans ne nombreux cas, il y a un exemple d'utilisation plus bas qui montre une possiblité d'usage.
L'exemple necessite le placement d'une listbox, List1.
Source / Exemple :
Dim MatL As Variant 'Declaration pour l'exemple
Private Function Aleatoiriser(Mat As Variant) As Boolean
'Déclarations des variables
Dim NbrA As Long, IndexR As Long, IndexA As Long, SavMat As Variant
'S'il y a une erreur il termine l'execution de cette fonction
On Error GoTo F
'Aléatoirise le Rnd
Randomize Timer
For IndexR = LBound(Mat) To UBound(Mat) 'IndexR varie de sa valeur Minimale à celle Maximale
IndexA = Int(Rnd * UBound(Mat)) 'Donne un indexa compris dans lensemble des index existant
SavMat = Mat(IndexR) 'Garde l'ancienne valeur du tableau
Mat(IndexR) = Mat(IndexA) 'Implemente la valeur de l'indexA du tableau à celle de l'indexR
Mat(IndexA) = SavMat 'Et Vis-Versa
Next 'Boucle
Aleatoiriser = True
F:
End Function
''Exemple :
Private Sub ImplementerLst(List As ListBox, MatI As Variant)
List.Clear
For Var = 0 To UBound(MatI)
List.List(Var) = MatI(Var)
Next
End Sub
Private Sub ImplementerMt(MatI As Variant, List As ListBox)
ReDim MatI(List.ListCount - 1) As String
For Var = 0 To List.ListCount - 1
MatI(Var) = List.List(Var)
Next
End Sub
Private Sub Form_Activate()
Amp = 100
For N = 0 To Int(Rnd * Amp) + Amp
List1.AddItem "Trankil" & N
Next
ImplementerMt MatL, List1
End Sub
Private Sub form_Click()
Aleatoiriser MatL
ImplementerLst List1, MatL
End Sub
Conclusion :
Pour une fois, je me suis dis que j'allais posté qq chose de simple et utile ;)
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.