Générateur aleatoire

Résolu
lepapillon2015 Messages postés 28 Statut Membre -  
lepapillon2015 Messages postés 28 Statut Membre -
bonjour la communauté !
J'espère que vous allez tous bien!
J'ai un petit problème, je cherche à faire un générateur aleatoire sur une colonne de 30 cases par exemples, et qui affiche 1 ou 2 dans ces dernières!
Je crois que c'est pas compliqué mais je galère !
Merci d'avance !
A voir également:

5 réponses

ThauTheme Messages postés 1564 Statut Membre 160
 
Bonjour Lepapillon, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim I As Byte 'déclare la variable I (Incrément)

Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Randomize 'lance le générateur de nombre aléatoire
For I = 1 To 30 'boucle de 1 à 30
    O.Cells(I, 1).Value = Int(2 * Rnd + 1) 'renvoie dans la cellule ligne I colonne 1 (=A) de l'onglet O un nombre aléatoire 1 ou 2
Next I 'prochaine ligne de la boucle
End Sub

Voir l'aide Visual basic sur le mot clé Rnd...
2
lepapillon2015 Messages postés 28 Statut Membre
 
Hello, je complique un peu le truc mais est ce que c'est possible de faire une seconde colonne qui affiche par exemple "Bonjour" pour la valeur 1 et "Bonsoir" pour la valeur 2 dans chaque cellule correspondante??
Merci bcp bcp de votre aide :)
0
Thorak83 Messages postés 1140 Statut Membre 156
 
Bonjour

Sub Aleatoire()
  Dim CelDepart As String
  Dim NbCel As Integer
  Dim i As Integer
  
  CelDepart = "A1"
  NbCel = 30
  Range(CelDepart).Select
  For i = 1 To NbCel
    Randomize
    ActiveCell.Value = Int(2 * Rnd) + 1
    ActiveCell.Offset(1, 0).Select
  Next
End Sub


C'est un exemple

cordialement
1
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour à tous

Une solution sans macro (au cas où .... )
https://www.cjoint.com/?3DopmMT44Nt

Cdlmnt
1
lepapillon2015 Messages postés 28 Statut Membre
 
Merci! Le top serait en VBA car c'est pour un projet, mais en tout cas merci :)
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
En reprenant le code de ThauTheme par exemple

For I = 1 To 30 
O.Cells(I, 1).Value = Int(2 * Rnd + 1)
If O.Cells(I, 1).Value = 1 Then
O.Cells(I, 2).Value = "bonjour"
Else
O.Cells(I, 2).Value = "bonsoir"
End If
Next I

Cdlmnt
0
lepapillon2015 Messages postés 28 Statut Membre
 
vous êtes au top!! Merci bcp!
0
lepapillon2015 Messages postés 28 Statut Membre
 
For I = 1 To 30
If O.Cells(I, 2).Value = "bonjour"
cell.Interior.ColorIndex = 3
Else
cell.Interior.ColorIndex = 4
End If
Next I
End Sub

J'essaye de colorier en rouge pour bonjour dans la continuité de ce que vous avez fait mais cela ne marqhe pas, il exige un then ....
Merci d'avance si vous avez une idée et surtout du temps que vous me consacrez :)
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
1. eh bien, tu l'ajoutes !
If O.Cells(I, 2).Value = "bonjour"  Then

2. ou mieux
For I = 1 To 30
If O.Cells(I, 2).Value = "bonjour"
For I = 1 To 30
O.Cells(I, 1).Value = Int(2 * Rnd + 1)
If O.Cells(I, 1).Value = 1 Then
O.Cells(I, 2).Value = "bonjour"
O.Cells(I, 2).Interior.ColorIndex = 3
Else
O.Cells(I, 2).Value = "bonsoir"
O.Cells(I, 2).Interior.ColorIndex = 4
End If
Next I

Bon courage
0
lepapillon2015 Messages postés 28 Statut Membre
 
Je vais essayer!
En tout cas merci bcp de votre réactivité, cela fait plaisir à voir :)
Je vous tiens au courant, et encore merci !
0

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

Posez votre question
lepapillon2015 Messages postés 28 Statut Membre
 
CA MARCHE!!!
Merci vous êtes au top! :)
0