Aleatoiriser un tableau à une dimension

Contenu du snippet

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

A voir également

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.