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 !

5 réponses

  1. 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
    1. 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
  2. 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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour à tous

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

    Cdlmnt
    1
    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
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      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
    3. lepapillon2015 Messages postés 28 Statut Membre
       
      vous êtes au top!! Merci bcp!
      0
    4. 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
    5. ccm81 Messages postés 11033 Statut Membre 2 434
       
      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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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