Nombre aléatoire entre -16 et 82

Bonjour,
j'aimerai avoir la syntaxe pour générer des nombre aléatoire compris entre -16 et 82
comment faire

3 réponses

  1. Bonjour !

    Je ne sais pas, je ne connais pas le VBA. Mais vous pouvez décomposer le traitement ^^

    1.
    Générer un nombre aléatoire entre 0 et 100
    2.
    Retirer 2 (on a donc un nombre entre -2 et 98)
    Recommencer si nombre négatif (on a un nombre entre 0 et 98)
    2 bis.
    Si nombre supérieur ou égal à 99, retirer 2 ou recommencer la génération
    3.
    Retirer 16 (on a donc un nombre entre -16 et 82)

    Il y a sûrement plus propre ;-)

    Bonne journée !

    Luc

    Les 3 plus grands mensonges du dev : 1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
    -1
    1. générer un entre -10 et 10,
      Sub rando() 'nom de ma procedure
      Dim r As Double, r2 As Double
      ' je génere d'abord une valeur que j'arrondi( resultat : 0 ou 1)
      r2 = Round(Rnd())
      en fonction de r2, je me branche sur l'une des plages
      If (r2 = 0) Then
      r = (-10 * Rnd) ' nombre entre -10 et 0
      Else
      r = (10 * Rnd) ' nombre entre 0 et 10
      End If
      ' Je fait une troncature sur r
      r2 = Left(r, 8)
      MsgBox "tronquée est " & r2 & " r = " & r
      End Sub
      0
      1. J'aurais donc fait :
        Sub rando() 'nom de ma procedure
        Dim r As Double
        ' je génère d'abord une valeur que j'arrondis( résultat : entre 0 et 100, décimaux compris)
        r = Round(Rnd() * 100)
        'A ce stade, r2 ne contient que des nombres entiers de 0 à 100 
        ' (et encore, c'est à voir... Peut-être que 0 et/ou 100 ne sont pas compris.)
        If (r >= 99) 
        Then r = r - 2
        End If
        r = r - 16
        MsgBox "tronquée est " & r
        End Sub

        A voir si ça marche...

        P.S. : n'oublie jamais les balises de code...
        0
    2. Bonjour à tous

      Pour créer un entier aléatoire de min à max compris
      a=min + Int((max - min + 1) * Rnd)

      Cdlmnt
      0
      1. Ca dépend du langage... en Basic, c'est Int(((Max+1) - (Min+1))*Rand()) + (Min-1) ;-)
        Le tout dépend de la façon dont est gérée la valeur entière d'un aléat par l'interpréteur...
        0