Générateur aleatoire

Résolu
lepapillon2015 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
lepapillon2015 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -
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 1442 Date d'inscription   Statut Membre Dernière intervention   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 27 Date d'inscription   Statut Membre Dernière intervention  
 
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 1051 Date d'inscription   Statut Membre Dernière intervention   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 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour à tous

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

Cdlmnt
1
lepapillon2015 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
Merci! Le top serait en VBA car c'est pour un projet, mais en tout cas merci :)
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   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 27 Date d'inscription   Statut Membre Dernière intervention  
 
vous êtes au top!! Merci bcp!
0
lepapillon2015 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   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 27 Date d'inscription   Statut Membre Dernière intervention  
 
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 27 Date d'inscription   Statut Membre Dernière intervention  
 
CA MARCHE!!!
Merci vous êtes au top! :)
0