Nombre aléatoire

Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022 - 2 déc. 2009 à 14:34
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 2 déc. 2009 à 21:11
Bonjour à tous,

QQn saurait-il générer un nombre aléatoire compris entre 9 et 32 en éliminant à chaque fois le nombre précédemment tiré au sort?

Merci pour votre aide précieuse

7 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
2 déc. 2009 à 14:38
Bonjour,

Oui ! Plein de gens, même ...
Utilise donc le moteur de recherche de ce forum (tu connis le mot clé : aléatoire ...!)
T'en auras plein, des codes à ce sujet ! plein !
0
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
2 déc. 2009 à 14:41
Wow trop sympa toi!

Tu aurais pu t'économiser ce message toi qui a l'air de compter tes efforts
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
2 déc. 2009 à 14:42
Bref...
Bonne chance....
0
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
2 déc. 2009 à 14:49
Si je pose la question c'est que je n'ai pas trouvé de réponse adaptée et que je n'arrive pas non plus à adapter mon code en fonction de ce que j'ai pu y trouver

Mais merci quand meme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 déc. 2009 à 14:51
Je pense que ce code doit être présent...
en voici une version pour toi spécialement :
Private mxbAvailable() As Boolean
Private mnAvailable As Long

Private Sub Reset(ByVal vnMin As Long, ByVal vnMax As Long)
Dim nIndex As Long
    Randomize
    ReDim mxbAvailable(vnMin To vnMax)
    mnAvailable = 0
    For nIndex = LBound(mxbAvailable) To UBound(mxbAvailable)
        mxbAvailable(nIndex) = True
        mnAvailable = mnAvailable + 1
    Next
End Sub

Private Function GetNext(ByVal vnMin As Long, ByVal vnMax As Long) As Long
Dim nIndex As Long
    If mnAvailable Then
        Do
            nIndex = Rnd * vnMax
            If nIndex >= vnMin And nIndex <= vnMax Then
                If mxbAvailable(nIndex) Then
                    Exit Do
                End If
            End If
        Loop
        mxbAvailable(nIndex) = False
        mnAvailable = mnAvailable - 1
        GetNext = nIndex
    End If
End Function

Private Sub Form_Load()
    Reset 9, 32
    Do While mnAvailable
        Debug.Print GetNext(9, 32)
    Loop
End Sub




Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
2 déc. 2009 à 14:57
Bonjour, Renfield,

Il a sûrement beaucoup cherché ...
Tiens, sans API (avec uniquement VB), en provenance d'un ami à moi :
http://www.vbfrance.com/codes/EXTRAIRE-NOMBRES-ALEATOIRES-SANS-DOUBLONS_40774.aspx
et en hommage au sapeur Camembert
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 déc. 2009 à 21:11
salut,

et un de plus :
http://www.codyx.org/snippet_recuperer-aleatoirement-valeur-unique-tableau_348.aspx


en effet çà manquait peut-être un peu de recherches

++
[hr]
0
Rejoignez-nous