begin process at 2012 02 15 03:34:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

fonction alétoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fonction alétoire

vendredi 28 juillet 2006 à 12:37:17 | fonction alétoire

melleweb

salut,pour remplir une msflexgrid d'une façon aléatoire ,apartir d'un Recordset j'ai utiliser la foction:
Randomize
a = Int((n * Rnd))
RsCal.Move (a)
et ça marche, mé le probleme c'est que parfois elle retourne des enregistrements en double parceque "a" prend la meme valeur aletaoire.
 ma question c'est comment puisse je faire pour que le valeur de "a" ne se repete pas.
merci d'avance.

vendredi 28 juillet 2006 à 12:44:18 | Re : fonction alétoire

JMO

Membre Club


 Bonjour,

Randomize
a = Int((n * Rnd) + 1)
RsCal.Move (a)

jean-marc
vendredi 28 juillet 2006 à 12:58:06 | Re : fonction alétoire

JMO

Membre Club



 Bonjour,

Désolé de cette réponse si c'est la même question que le précédent topic.
La question est formulée différemment.

jean-marc

'Premièrement, le Randomize doit être écrit une seule fois, donc à l'extérieur de la boucle ou encore au Form_Load. C'est un 'appel pour démarrer le "générateur" de nombres aléatoires.
'Pour l'erreur, j'imagine que le numéro généré par Rnd() détermine un Index qui est inexistant dans ta table. Si tu as 10 'enregistrements et que Rnd() te retourne 11, ça va te donner un enregistrement inexistant.
'Il faut donc vérifier que l'enregistrement existe avant de l'inscrire dans ta MsFlexGrid.
'Et je pense que tu devrais enlever le  + 1
'a = Int(n * Rnd)
'MPi

Ci-dessous, un exemple trouvé sur ce forum (randomize du loto).

Dim aTabSeries(49)
Dim aSuites()          
Randomize

Dim i , iRnd
For i = 1 To 49
    aTabSeries(i) = i
Next 

'redim résultats
ReDim aSuites(6)

Dim Message : Message = ""  '<- pour l'exemple

'on créé le tableau de résultat en "désactivant" ceux trouvés
For i = 1 To 6
    aSuites(i) = 0
    While aSuites(i) = 0
          iRnd = Int(49 * Rnd) + 1
          If aTabSeries(iRnd) <> 0 Then
             aSuites(i) = aTabSeries(iRnd)
             aTabSeries(iRnd) = 0
             Message = Message & CStr(aSuites(i)) & " . " '& vbCrLf
          End If
    Wend
Next

MsgBox Message

vendredi 28 juillet 2006 à 14:00:42 | Re : fonction alétoire

melleweb

merci ,pour ce probleme ,je l'ai corrigé  mnt j'ai un  autre voila:
pour remplir une msflexgrid d'une façon aléatoire ,apartir d'un Recordset j'ai utiliser la foction:
Randomize
a = Int((n * Rnd))
RsCal.Move (a)
et ça marche, mé le probleme c'est que parfois elle retourne des enregistrements en double parceque "a" prend la meme valeur aletaoire.
 ma question c'est comment puisse je faire pour que le valeur de "a" ne se repete pas.
merci d'avance.

vendredi 28 juillet 2006 à 23:35:08 | Re : fonction alétoire

MPi

Salut,
Il faut que tu crées un tableau (array) qui contienne chaque chiffre que RND() te retourne.
Il ne te reste alors qu'à vérifier si le chiffre est dans le tableau avant d'inscrire ton enregistrement dans la grille. Si le chiffre existe déjà dans le tableau, donc a déjà été sorti et affiché, tu refais le RND jusqu'à ce que ce soit un nouveau numéro.

Regarde la routine que JMO t'a envoyée. C'est à peu de chose près ce que tu recherches. Il y a moyen de faire un peu différent, mais l'idée est là.

MPi


Cette discussion est classée dans : fonction, valeur, alétoire


Répondre à ce message

Sujets en rapport avec ce message

Pb de valeur retourner par une fonction [ par Dbordier ] Cette fonction retourne une variable contenue dans un fichier ini.Si yen a un qui peut me dire pourquoi cette fonction me retourne un entier alorsqu'e [Aide] Résolution de petits problèmes en VBA [ par Lomelia ] Voilà, j'aimerais comprendre comment résoudre quelques petits exercices sur Excel grâce à des fonctions ou des procédures (Sub) en VBA, mais je n'y ar Est-ce possible ? (récupération d'une valeur) [ par debutantvb ] Bonjour,Est-ce possible en VB ?J'ai une fonction "A" qui (selon les conditions) ouvre un formulaire.Ce formulaire contient une ComboBox qui contient u barre de défilement [ par Fleur54 ] fleur54Bonjour,j'ai créé un petit programme permettant de calculer une fonction f(x). Cette fonction est définie par rapport à une valeur u et une va retour de valeur à la fin de l'application [ par dragon ] j'aimerais que l'application puisse retourner un 0 si une erreur est détecté. Je parle pas d'nue fonction, mais de l'exe. En C ou en Java, je suis cap Utiliser une valeur dans un retour de fonction [ par Keliah ] Voilà, ce que je cherche à faire c'est d'utiliser une fonction pour retourner un nom de textebox pour modifier la valeur d'un de ses attribut.En clair garder valeur d une variable entre 2 feuilles + appel fonction dans module [ par wally88 ] bjour, je suis debutant en VB et je souhaiterai savoir comment garder une valeur dans une variable entre 2 feuilles. je voulais savoir aussi comment a Valeur retournée par la fonction shell [ par magicdibot ] Bonjour,J'utilise la fonction ShellExecute dans mon prog pour lancer un prog sélectionné dans les options.cette fonction retourne une valeur de type l Vérification de valeur non null dans une fonction vba [ par hasen ] Et bien voila : je suis dans une fonction qui, en gros, permet de recopier les valeurs d'une tabe dans une autre table. Pour se faire, je crée un reco Macro en fonction d'une valeur dans une cellule [ par mkits ] Bonjour,je voudrais créer une macro pour faire la fonction suivante :En fonction de la valeur dans la cellule A1 qui peut être soit, 1, soit 2 ou soit


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,288 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales