Formule alétoire avec exclusion de nombres

Résolu
Gweltaz38 Messages postés 4 Statut Membre -  
Gweltaz38 Messages postés 4 Statut Membre -
Bonjour,

J'ai ma formule pour avoir un nombre aléatoire entre deux bornes. Ici, 11 et 59.
La voici : ALEA.ENTRE.BORNES(11;59)

Tout fonctionne.
Seulement, je souhaiterais pourvoir ne pas avoir 20, 30, 40 et 50 qui soient choisis.
Est-ce possible?

D'avance, merci.

Gweltaz

5 réponses

  1. Gweltaz38 Messages postés 4 Statut Membre 1
     
    A ccm81
    Un grand merci pour ta réponse rapide et l'intérêt porté à ma question.

    J'avoue que je reste bouche bée devant ta réponse car... je n'y comprends rien! Enfin, si, j'ai compris qu'il fallait passer par une macro mais je suis bien incapable de le faire dans le sens où je n'y connais rien!

    Ma formation d'instituteur ne me suffit pas... Je vais faire F9 jusqu'à ce que j'aie une feuille correcte!

    Mais encore merci!

    Gweltaz
    1
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    sans macro, je ne vois pas

    avec macro, une fonction a copier dans Module 1
    Alt-F11 pour accéder à vba, puis Insertion/module
    s'utilise ensuite come une fonction exel
    A1=aleabb()

    Public Function aleabb()
    Dim k As Long
    Application.Volatile
    Do
      k = 11 + Int(49 * Rnd)
    Loop Until k Mod 10 <> 0
    aleabb = k
    End Function

    bonne suite
    0
    1. results
       
      www.postresult.com
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    tu ne devrais pas te laisser impressionner,
    quelques explications sur la fonction aleabb créée

    Public Function aleabb()
    Dim k As Long
    Application.Volatile
    Do
      k = 11 + Int(49 * Rnd)
    Loop Until k Mod 10 <> 0
    aleabb = k
    End Function


    dim k as long, déclare la variable k comme un entier
    rnd produit un réel de 0 compris à 1 non compris (ALEA() de la feuille)
    49*rnd prodiuit un réel de 0 compris à 49 non compris
    int est la fonction partie entière (ENT de la feuille)
    donc int(49*rnd) produit un entier de 0 à 48 compris(s)
    et en ajoutant 11 on obtient un entier de 11 à 49 compris(s)

    k mod 10 donne le reste de la division entière de k par 10 (MOD de la feuille)

    do .... loop until, recommence le calcul de k jusqu'à ce que k ne se termine pas par 0

    Pour ce qui est de l'implantation et du fonctionnement c'est décrit au post #1

    bonne suite
    0
    1. postresult
       
      http://www.postresult.com
      0
  4. Gweltaz38 Messages postés 4 Statut Membre 1
     
    Merci pour tes explications! Avec la traduction, je me sens moins nul!
    Je vais tenter le truc!

    Encore merci!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Gweltaz38 Messages postés 4 Statut Membre 1
     
    Génial!
    Ça fonctionne!
    Je vais m'entraîner en réutilisant cette macro sur d'autres feuilles!

    Merci, merci, merci!
    0