Random tableau défini [Résolu]

cs_foungo 14 Messages postés lundi 20 septembre 2004Date d'inscription 27 janvier 2010 Dernière intervention - 17 déc. 2009 à 14:50 - Dernière réponse : cs_foungo 14 Messages postés lundi 20 septembre 2004Date d'inscription 27 janvier 2010 Dernière intervention
- 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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2009 à 16:40
3
Merci
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.

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2009 à 15:00
0
Merci
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.
Commenter la réponse de ucfoutu
cs_foungo 14 Messages postés lundi 20 septembre 2004Date d'inscription 27 janvier 2010 Dernière intervention - 17 déc. 2009 à 15:13
0
Merci
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
Commenter la réponse de cs_foungo
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2009 à 16:27
0
Merci
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.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2009 à 16:37
0
Merci
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.
Commenter la réponse de ucfoutu
cs_foungo 14 Messages postés lundi 20 septembre 2004Date d'inscription 27 janvier 2010 Dernière intervention - 18 déc. 2009 à 00:31
0
Merci
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
Commenter la réponse de cs_foungo

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.