valeurs aléatoires entre bornes dont la somme est prédéterminée

Izy3834

XLDnaute Nouveau
Bonjour tout le monde!

voilà j'ai beau chercher sur internet je ne trouve pas de solution à mon problème, peut-être pourrez-vous m'aider??

Alors je travaille sous Excel 2007 et je pensais écrire un code dans visual basic.

En effet j'aimerai générer des valeurs aléatoires entre bornes, par exemple sur les cellules A1 à A20. Mais je voudrais que la somme de ces valeurs soit égale à un certain nombre.

Sub alea()

Randomize
RandomNumber = Int((99 * Rnd) + 1)
Range("C1") = RandomNumber
End Sub

Ici j'ai réussi à générer une valeur aléatoire entre 0 et 100 mais sur une seule cellule, comment faire pour générer sur une plage?? et la question de la somme reste un mystère....help

Merci d'avance pour vos réponses!
 

CHALET53

XLDnaute Barbatruc
Re : valeurs aléatoires entre bornes dont la somme est prédéterminée

Bonjour,

essaie en mettant en B1 une valeur à atteindre suffisamment élevé quand même. Il faut adapter soit le total, soit remplacer 99 par un nombre plus petit. Pour un total supérieur à 1000, on trouve (ça peut être long)

Sub alea()
While s <> Range("B1").Value
s = 0
For i = 1 To 20
Randomize
RandomNumber = Int((99 * Rnd) + 1)
Range("C" & i) = RandomNumber
s = s + Range("C" & i).Value
Next i
Wend
'Stop
End Sub
 

CBernardT

XLDnaute Barbatruc
Re : valeurs aléatoires entre bornes dont la somme est prédéterminée

Bonsoir Izy3834 et le forum,

Je propose une syntaxe un peu différente :

Sub alea()
Randomize
Do
s = 0
For i = 1 To 20
N = Int((99 * Rnd) + 1)
Range("A" & i) = N
s = s + N
Next i
Loop Until s = Range("B1").Value
End Sub
 

ROGER2327

XLDnaute Barbatruc
Re : valeurs aléatoires entre bornes dont la somme est prédéterminée

Bonjour à tous.


En pièce jointe, deux bricoles dont une déjà publiée sur ce forum (je ne sais plus où, il faut chercher..)
Voir aussi par-là...
Mais pas sûr que ce soit exactement ce qui est recherché.​


Bonne journée


ℝOGER2327
#7715


Samedi 21 Décervelage 142 (Chaire du Dr Faustroll - fête Suprême Première seconde)
29 Nivôse An CCXXIII, 1,2384h - mercure
2015-W03-7T02:58:19Z
 

Pièces jointes

  • Somme prédite.xlsm
    28.6 KB · Affichages: 52
  • Somme prédite.xlsm
    28.6 KB · Affichages: 54
  • Somme prédite.xlsm
    28.6 KB · Affichages: 56
  • Somme prédite (2).xlsm
    21.1 KB · Affichages: 48
Dernière édition:

mécano41

XLDnaute Accro
Re : valeurs aléatoires entre bornes dont la somme est prédéterminée

Bonjour à tous,

J'avais supprimé le fichier de mon message #3 car le code ne traitait pas bien les entiers!

Voici le fichier corrigé...

C'est une méthode "rouleau compresseur" alors si la somme s'éloigne trop de la somme indiquée dans le nota, le temps peut devenir très long...c'est pour cela que j'ai mis la possibilité de saisir un temps limite.



EDIT : attention en entrant les données! il n'y a aucune vérification de : Limite inf > Limite sup...etc... en valeurs positives ou négatives

Cordialement
 

Pièces jointes

  • Essai série avec somme2.xlsm
    23.3 KB · Affichages: 51
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : valeurs aléatoires entre bornes dont la somme est prédéterminée

Bonjour à tous.


S'il y a des bornes clairement fixées (ce qui n'est pas le cas dans le message #1) et si on veut traiter le problème en nombres entiers ou en nombres décimaux, on peut essayer la pièce jointe ci-dessous.​


Bonne journée.


ℝOGER2327
#7716


Samedi 21 Décervelage 142 (Chaire du Dr Faustroll - fête Suprême Première seconde)
29 Nivôse An CCXXIII, 4,0523h - mercure
2015-W03-7T09:43:32Z
 

Pièces jointes

  • Somme prédite (3a).xlsm
    23.4 KB · Affichages: 69
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 630
Messages
2 111 382
Membres
111 118
dernier inscrit
gmc