[EXCEL VBA]nombre au choix de l'ordinateur

Résolu
iliesss Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai une plage A1:A31 comment faire une macro qui affacte dans cette plage des nombre entre 8000,00 et 11000,00 de leur choix.

et merci

1 réponse

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Pour une plage plus importante, il faudra absolument* une autre macro. En attendant, voici ma contribution (modeste) à votre problème :

    Dim Lig As Integer 
    Randomize 
    For Lig = 1 To 31 
    toto: 
    Cells(Lig, 1) = Round(Rnd * 100000, 0) 
    If Cells(Lig, 1) < 11000 And Cells(Lig, 1) > 8000 Then 
    Else 
    GoTo toto 
    End If 
    Next


    * Il convient habituellement d'éviter les goto toto...
    Cordialement,
    -- Il n'y a rien de tel qu'une question idiote, seulement une réponse idiote. A.Einstein --
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      peut-^tre + simple

      Sub noter()
      Dim cellule As Range
      Dim nbre as integer
      Application.ScreenUpdating = False
      Randomize
      For Each cellule In Range("A1:A31")
          nbre = Int(Rnd * 3000) + 8000
          cellule = nbre
      Next cellule
      End Sub
      0
    2. pijaku
       
      Salut Michel_m,
      Effectivement, bien plus simple, plus rapide et aussi plus juste "programmaticalement" parlant.
      Bonne journée
      0
    3. iliesss Messages postés 92 Date d'inscription   Statut Membre Dernière intervention  
       
      salut mr pijaku
      merci pour toi et pour mr michel
      ca marche tres bien.
      mais si mon nombre contien deux chiffres apres la vergule comme faire SVP
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      bonjour
      Sub noter()
      Dim cellule As Range
      Dim nbre As Double
      Application.ScreenUpdating = False
      Randomize
      For Each cellule In Range("A1:A31")
          nbre = Rnd * 3000 + 8000
          cellule = Round(nbre, 2)
      Next cellule
      End Sub
      0