Création d'une fonction qui génère un nombre aléatoire compris entre deux valeurs.

bb123

XLDnaute Nouveau
Bonjour,

Comme dit dans le titre, je voudrai crée une fonction sur VBA qui génère un nombre aléatoire compris entre deux valeurs de deux cellules excel (Exemple cellule A1=10 et cellule A2=20, ma fonction me génère un nb aléatoire entre 10 et 20) Mais je n'y arrive désespérément pas...;(

Si quelqu'un peu m'aider, je suis preneur..
Merci d'avance
 

bb123

XLDnaute Nouveau
Re : Création d'une fonction qui génère un nombre aléatoire compris entre deux valeur

Bonjour Chris,

Je voudrai créer plutôt une fonction une qui me donne un nb aléatoire entre deux cellules que je sélectionne en utilisant Rnd dans VBA je ne sais pas si tu vois.. (Je sais c'est plus compliqué mais je n'ai pas trop le choix)
 

Staple1600

XLDnaute Barbatruc
Re : Création d'une fonction qui génère un nombre aléatoire compris entre deux valeur

Bonsoir à tous


Une autre formule
=ENT(ALEA()*(20-10)+10)

Transformé en en fonction VBA
Function monalea(high As Range, low As Range)
monalea = Int(Rnd * (high - low) + low)
End Function

Mode d'emploi
écrire dans une cellule par exemple =monalea(B1;C1)
 
Dernière édition:

NezQuiCoule

XLDnaute Occasionnel
Re : Création d'une fonction qui génère un nombre aléatoire compris entre deux valeur

Je te propose quelque chose comme :

Code:
Function Alea_entre_bornes(a As Range, b As Range) As Long
  Alea_entre_bornes = Int(Rnd * ((b - a) + 1)) + a
End Function

À insérer dans un module
En n'oubliant pas que pour que cela fonctionne, a <= b
 

bb123

XLDnaute Nouveau
Re : Création d'une fonction qui génère un nombre aléatoire compris entre deux valeur

Merci nez qui coule, c'est exactement ce qu'il me fallait!!

Mais du coup, je ne suis plus sûr de comprendre le rôle de "As range" et "As Long" lors de la création de fonction, car mon erreur venait de là..
Si tu peux me renseigner en m'expliquant la première ligne, ce serait top !!

En tout cas ça fonctionne et c'est super, merci beaucoup!! :)
 

Staple1600

XLDnaute Barbatruc
Re : Création d'une fonction qui génère un nombre aléatoire compris entre deux valeur

Re

bb123
Ça fait toujours plaisir d'être invisible...
Voir le message #4

Mais bon comme ma proposition est quasi-identique à celle de Nez Qui Coule que je salue au passage.
 

bb123

XLDnaute Nouveau
Re : Création d'une fonction qui génère un nombre aléatoire compris entre deux valeur

Pardon je ne l'avais pas vue car vous l'avez postez quasiment au même moment mais oui du coup, c'est quasi la même et elle marche aussi, je viens de l'essayer alors merci a toi aussi pour ton aide :)
 

Modeste geedee

XLDnaute Barbatruc
Re : Création d'une fonction qui génère un nombre aléatoire compris entre deux valeur

Bonsour®
Si quelqu'un peu m'aider, je suis preneur..
Merci d'avance
F1 peut t'aider
cette touche F1 s'appelle : Aide
d'ailleurs elle dit pour ALEA()

Fonction ALEA
Renvoie un nombre réel aléatoire distribué de manière symétrique supérieur ou égal à 0 et inférieur à 1. Un nouveau nombre réel aléatoire est renvoyé chaque fois que la feuille de calcul est recalculée.

Syntaxe

ALEA( )

Notes

Pour générer un nombre réel aléatoire compris entre a et b, utilisez :
ALEA()*(b-a)+a

Si vous souhaitez utiliser ALEA pour générer un nombre aléatoire sans que les nombres changent à chaque fois que la cellule est calculée, entrez =ALEA() dans la barre de formule, puis appuyez sur F9 pour que la formule génère un nombre aléatoire.

l'utilisation d'une formule de feuille de calcul est en général plus rapide que VBA
par ailleurs de nombreux D.I. (dictats informatiques) n'autorisent pas les macros dans leur entreprise.
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 796
Membres
101 817
dernier inscrit
carvajal