Fonction ALEA avec excel 2003

Résolu
Bonjour,
J'utilise la fonction "ALEA()*xxx".
le résultat est égal ou supérieur à 0 est xxx.
Est-il possible que le résultat aléatoire exclut le zéro ?
Merci

9 réponses

  1. Contributeur
    Bonsoir
    Sauf erreur, ALEA() ne renvoie pas de 0.Le résultat ne peutêtre 0 que si la valeur xxx elle même et 0
    crdlmnt
    0
    1. Salut Vaucluse

      Si, ça m'est arrivé lors d'un ln(alea()), et comme c'était sous VBA, j'ai mis un moment avant de trouver le hic

      Bonne soirée
      0
  2. Bonjour

    ALEA() renvoie un nombre de 0 compris à 1 non compris
    Tu peux utiliser 1-ALEA() qui te renvoie un nombre de 0 non compris à 1 compris

    Bonn chance
    0
    1. Contributeur
      Bonsoir ccm81
      c'est effectivement ce qu'annonce Excel, mais je teste sur un champ A1:J100000, soit le million de cellule avec =ALEA() et il ne m'a pas renvoyé un seul 0
      Combien faut il de cas pour avoir un 0?
      ... et même en doublant jusqu'à T et en modifiant cinq ou six fois les valeurs,toujours pas de 0?
      crdlmnt

      Errare humanum est, perseverare diabolicum
      0
      1. Merci pour vos réponses mais c'est pas bon!
        Je donne à la cellules A1 la valeur =ALEA()*50 résultat aléatoire de 0 à 50.
        Je fais dans A1 la valeur =1-ALEA()*50 le résultat est de 0 à -50.
        Dans les deux cas le 0 est dans le résultat aléatoire!

        Comment affecter dans A1 un champ par exemple de B1:B50 à mon exemple?

        Je reformule ma demande:
        Mon but est que dans une cellule j'ai un résultat aléatoire de 1 à xx, sans le zéro,
        et j'aimerai que le calcul aléatoire soit manuel par un clic "type F9" sur une cellule
        nommer par exemple "calculer".

        à+
        0
        1. Contributeur
          Si vous avez des affichages 0, c'est que votre cellule n'affiche pas les décimales et que votre formule renvoie un 0,xxxxx
          mais avec cette formule, vous avez obligatoirement une valeur décimale.

          si vous voulez un aléatoire entre 1 et 50:
          =ALEA.ENTRE.BORNES(1;50)

          crdlmnt
          0
      2. C'est la fonction (1-alea()) qu'il te faut utiliser soit dans ton exemple
        (1-ALEA())*50 qui te donnera un nombre de 0 non compris à 50 compris

        Bonne suite

        > Vaucluse. Effectivement la probabilité d'obtenir 0 est (quasi) nulle, mais comme ça m'est arrivé ....
        Tu vas certainement me dire que ce jour là, j'aurais du jouer au loto, mais comme la probabilité de gagner (le gros lot) est quasi ....
        Combien faut il de cas pour avoir un 0? Ben un ;-)

        cordialement
        0
        1. Merci Vaucluse si je colle la formule: =ALEA.ENTRE.BORNES(1;50) dans une cellule
          rien ne se passe!
          Je dois faire une mauvaise manip
          0
          1. 1. ALEA.ENTRE.BORNES renvoie un entier
            2. Installe l'utilitaire d'analyse (Outils/Macros complémentaires/Utilitaire d'analyse)

            Bonne suite
            0
            1. Merci à vous tous pour votre aide.
              la solution de vaucluse (=(1-ALEA())*50) est bonne

              Sujet résolu

              au fait comment fait on pour placer la discutions en "résolu" ?????
              0
              1. Contributeur
                Bonjour,

                Merci Vaucluse si je colle la formule: =ALEA.ENTRE.BORNES(1;50) dans une cellule rien ne se passe!
                Il se passe obligatoirement qcq chose. Je ne pense pas que la cellule soit vide...

                Tout dépend de si tu veux des nombres entiers ou pas.
                ALEA.ENTRE.BORNES() retourne un entier.
                De plus, sur 2003 au moins, c'est une fonction de l'utilitaire d'analyse qu'il faut activer.

                Avec la proposition de ccm81 au post 7 tu n'en as pas besoin.
                Si tu veux un entier ajoute ent() :
                =ENT((1-ALEA())*50)

                eric

                0
                1. Salut Eric

                  Si tu veux un entier ajoute ent() :
                  =ENT((1-ALEA())*50)

                  Oui mais, on peut alors obtenir 0

                  > jps. Pour mettre le problème à résolu c'est en haut dans ton premier message

                  cdlmnt
                  0
                2. Contributeur
                  pas faux.
                  remarque, si c'est pour avoir un entier entre 1 et 50, autant rester à la méthode classique finalement :-)
                  =ent(alea()*50+1)

                  eric
                  0