boucle if pour tester les doublons ...

boucle if pour tester les doublons ... - VB/VBA/VBS - Programmation

Marsh Posté le 25-11-2003 à 09:30:27    

hello !
j'ai un tp à faire et je suis un peu pomé ...
je dois génrer des chiffres aléatoires. mais pas 2 fois les mêmes. je les génère, mais je ne sais pas comment les tester.
j'en suis là:
 
Sub Génération()
For Colonne = 1 To 2
    For Ligne = 1 To 5
        Cells(Ligne, Colonne).Value = Int((5 * Rnd) + 1)
    Next
Next
End Sub
 
please help ;)
je demande pas le code cash mais juste me dire où l'intégrer ...


Message édité par Nix le 25-11-2003 à 09:30:47
Reply

Marsh Posté le 25-11-2003 à 09:30:27   

Reply

Marsh Posté le 25-11-2003 à 11:35:32    

nix67 a écrit :

hello !
j'ai un tp à faire et je suis un peu pomé ...
je dois génrer des chiffres aléatoires. mais pas 2 fois les mêmes. je les génère, mais je ne sais pas comment les tester.
j'en suis là:
 
Sub Génération()
For Colonne = 1 To 2
    For Ligne = 1 To 5
        Cells(Ligne, Colonne).Value = Int((5 * Rnd) + 1)
    Next
Next
End Sub
 
please help ;)
je demande pas le code cash mais juste me dire où l'intégrer ...


 
 
tu veux teste quoi ? savoir si le chiffre est identique au dernier...? si c'est le cas, une variable fera l'affaire !
 

Code :
  1. Sub Génération()
  2. dim chiffre
  3. dim valeur_id
  4. chiffre = 0
  5. valeur_id = 0
  6. For Colonne = 1 To 2
  7.     For Ligne = 1 To 5
  8.         chiffre = Int((5 * Rnd) + 1)
  9.         Cells(Ligne, Colonne).Value = chiffre
  10.         if chiffre  <> valeur_id then
  11.         valeur_id = chiffre
  12.         else
  13.         msgbox("le chiffre est identique au précédent !" )
  14.         end if
  15.     Next
  16. Next
  17. End Sub


Message édité par cvb le 25-11-2003 à 11:37:28
Reply

Marsh Posté le 27-11-2003 à 15:21:37    

cvb a écrit :


 
 
tu veux teste quoi ? savoir si le chiffre est identique au dernier...? si c'est le cas, une variable fera l'affaire !
 

Code :
  1. Sub Génération()
  2. dim chiffre
  3. dim valeur_id
  4. chiffre = 0
  5. valeur_id = 0
  6. For Colonne = 1 To 2
  7.     For Ligne = 1 To 5
  8.         chiffre = Int((5 * Rnd) + 1)
  9.         Cells(Ligne, Colonne).Value = chiffre
  10.         if chiffre  <> valeur_id then
  11.         valeur_id = chiffre
  12.         else
  13.         msgbox("le chiffre est identique au précédent !" )
  14.         end if
  15.     Next
  16. Next
  17. End Sub




 
ça marchera pas , ne teste que le dernier chiffre et il veut que les chiffres soient tous différents.
 
Il peut generer tous ses chiffres d'un coup, les trier par ordre croissant et repeter toute l'opération (repeat) tant que les chiffres ne sont pas tous différents. il faut une variable boolean different qui passe a false quand elle rencontre une egalité dans la boucle

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed