Random tableau défini

Résolu
cs_foungo Messages postés 14 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 27 janvier 2010 - 17 déc. 2009 à 14:50
cs_foungo Messages postés 14 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 27 janvier 2010 - 18 déc. 2009 à 00:31
Bonjour à vous,

Voici un programme de random d'un nombre entre 1 et 6 SANS DOUBLON
Jusque là tout va bien.

'Une form, une listbox nommée List1 et un bouton de commande nommé Command1.
'Code:
Private Sub Command1_Click()
Const nbmini = 1 '-----ici la borne inférieure
Const nbmaxi = 6 '-----ici la borne supérieure
Const nbatirer = 6 'ici le nombre de numéros aléatoires à sortir entre les 2 bornes
fourch = nbmaxi - nbmini
If fourch + 1 < nbatirer Then
MsgBox "Il est impossible de tirer " & nbatirer & "nombres dans la fourchette comprise entre " _
& nbmini & " et " & nbmaxi & " qui ne comprend que " & fourch + 1 & " nombres, VOYONS !!!"
Exit Sub
End If
Randomize
Dim tabl(nbmaxi - nbmini + 1) As Integer, i As Integer, a As String, ou As Integer
For i = 0 To nbmaxi - nbmini
tabl(i) = nbmini + i
Next
list1.Clear
For i = 0 To nbatirer - 1
ou = Int(((fourch - i) * Rnd))
a = a & vbCrLf & tabl(ou)
list1.AddItem tabl(ou)
tabl(ou) = tabl(fourch - i)
Next
Erase tabl
End Sub

Donc ma question est:
faire un random de mon tableau avec une valeur déjà défini sans doublon

ex:déclaration de tableau "Tableau(6)"

tableau(0) = 1
tableau(1) = 33
tableau(2) = 2
tableau(3) = 13
tableau(4) = 10
tableau(5) = 3

Résultat:

tableau(5) = 3
tableau(2) = 2
tableau(4) = 10
tableau(1) = 33
tableau(3) = 13
tableau(0) = 1

et afficher le résultat avec le random dans une listbox.

Merci de votre aide.


foungo

6 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 déc. 2009 à 16:40
Ah oui ! autre chose :
Je ne sais pas pourquoi, mais il insiste sur le fait qu'il n'y a, pour ce faire, aucune différence entre VB6 (que tu dis savoir manier en matière de tableaux) et VBA ! (tu sais de quoi il parle, toi ?)

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 déc. 2009 à 15:00
Bonjour,

je cois bien que tu trouveras ta réponse en fouillant dans les sources déposées par mon copain jmfmarques
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
cs_foungo Messages postés 14 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 27 janvier 2010
17 déc. 2009 à 15:13
Re,

Benh le début du code vien de lui.

Mais je n'arrive pas à définir une valeur de mon tableau.

En VB6 j'arrive à manipuler avec les index, mais pas en vba.

Merci

foungo
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 déc. 2009 à 16:27
Attends, alors ... je vais demander à mon copain de t'aider...
Si j'ai bien compris, tu veux "touiller" un tableau de manière aléatoire (comme un jeu de cartes que tu touilles) c'est çà ?
Confirme ===>> je le lui explique ===>> je reviens avec la solucue qu'il m'aura soufflé à l'oreille


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 déc. 2009 à 16:37
Coquin de sort ! çà, alors ...
Ce petit espion de copain a suivi notre conversation (il est incorrigible, celui-là !)...
Il vient de me refiler cet exemple de touillage :


Private Sub CommandButton1_Click()
  Randomize
  Dim monarray, i As Integer, ou As Integer, temp As String, nb As Integer
 monarray = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14")
 nb = UBound(monarray)
 For i = 0 To nb \ 2
  ou = Int(((nb - i) * Rnd))
  temp = monarray(ou)
  monarray(ou) = monarray(nb - i)
  monarray(nb - i) = temp
 Next
 ListBox1.Clear
 For i = 0 To UBound(monarray)
   ListBox1.AddItem monarray(i)
 Next
End Sub


Il me précise qu'il te laisse le soin de remplir ton array monarray autrement que dans cet exemple (mais tu sais faire...)
Je lui dis merci ?
Dis-moi...

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
cs_foungo Messages postés 14 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 27 janvier 2010
18 déc. 2009 à 00:31
Merci beaucoup du beau travail! Je vais le mettre dans mes archives des bouts de code! C'est vrai que je ne suis pas à l'aise dans les arrays o_x. Je ramais grave en C.

Bref, comme cadeau de Noel, si qq est intéressé, j'ai plein de bout de code (lol), pour avoir un programme final donc le résultat ->
- envoie email
- sans passer par Outlook etc...
- avoir un compte hotmail ou (yahoo pas testé)
- Récupération des données bidon du Pc, à plein de données intéressante.
- VB6 + API
- add-on d'un dll pour envoie de l'email (en demo que j'ai trouvé sur le net), mais ça marche très bien.
- Test en local 100%
- Le programme n'est pas encore finalisé pour une installation sur un autre PC.
bref... avis au amateur
foungo
0
Rejoignez-nous