La fonction Rnd me donne toujours la même valeur

Résolu
yaorens Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   -  
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je veux d'abord, lister chaque dosssier et sous dossier , dans un tableu de string , et ensuite après, choisir un dossier au hazard dans la liste de dossiers , mais à chaque fois que j'utilise la fonction Rnd() , elle me donne toujours la même valeur , pourriez vous m'aidez , voici mon code :
 Try
            'je recupère d'abord chaque dossier parent 
            Dim dossier As String() = Directory.GetDirectories(noyau)

            Dim nouveaudossier As String
            For Each nouveaudossier In dossier



                ' pour chaque dossier , je verifie s'il ne comporte pas des sous dossier

                If Directory.Exists(nouveaudossier) Then
                    ' s'il existe des sous dossier dans nouveau dossier , alors :
                    final(i) = nouveaudossier

                    i += 1

                    recuperedossier(nouveaudossier)
                Else
                    ' sinon , je sauvegarde dans 
                    final(i) = nouveaudossier

                    i += 1
                End If

            Next nouveaudossier

            'à la fin , je passe au second dossier parent 

            taillefinal = i - 1
        Catch ex As Exception

        End Try


ensuite , je choisi un dossier aléatoire dans mon tableau comprenant des dossiers
 Public Sub DossierOptionnel()



        dossieroptionnel1 = final(Rnd() * taillefinal)
        MsgBox(" le dossier optionnel 1 vaut : " & dossieroptionnel1)
End Sub 


pourriez vous m'aider ??
A voir également:

4 réponses

Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
Bonjour yaorens,

Il faut utiliser Randomize, puis le Rnd

Edit:
code:
	Randomize()
	msgbox = Int(Rnd() * taillefinal).ToString
0
yaorens Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   7
 
Ok , merci beaucoup , mais alors , si je veux faire deux nombre aléatoire par exemple à chaque fois , je fais un randomise() avant chaque génération aléatoire
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
yaorens,

si je veux faire deux nombre aléatoire par exemple à chaque fois :
Prenons l'exemple du lotto.
Tu veux tirer au sort 6 nombres sur 45 (= 1 mise), mais cette semaine, tu veux remplir un bulletin de 10 mises :
	Randomize() ' pour chaque mise
	Int(Rnd() * taillefinal).ToString ' par boule
0
yaorens Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   7
 
ok merci , c'est assez clair , merci
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
Ce fut un plaisir .. @ très bientôt
0