XL 2019 Nombre aléatoire + Probabilité

Gwenole_50

XLDnaute Nouveau
bonjour a tous !

J'ai besoin de votre aide pour un de mes projets sur Excel, le but est de remplir un tableau avec des chiffres de 1 à 5 mais je voudrais que ces chiffres apparaissent le meme nombre de fois :

Par exemple numéro sort 20 fois alors tout les numéros doivent sortir 20 fois.


Petite demande supplémentaire ( 🙄), je voudrai aussi par exemple pouvoir modifier le parametre d'apparition dun chiffre, si je veux que par exple les numéros 1,2 et 3 apparaissent plus souvent que le 4 et le 5.

Savez vous comment faire cela ?

J'ai lu sur internet qu'il faudrait peut etre utilise le VBA mais je ne sais pas ce que c'est ...?

Merci pour vos retour !!

Cordialement ;)
 

Pièces jointes

  • Classeur1.xlsx
    15.5 KB · Affichages: 21

Dudu2

XLDnaute Barbatruc
Bonjour,
Si tu veux contrôler le nombre d'apparitions des chiffres, il n'y a plus rien d'aléatoire.
La seule chose qui peut être aléatoire, si on considère ton tableau, c'est la distribution de 5 paquets (20 fois <1>, 20 fois <2>, 20 fois <3>, 20 fois <4>, 20 fois <5>) dans les cases de ton tableau.
De même si tu veux augmenter le nombre d'apparitions d'un chiffre par rapport à un autre, il suffit de faire varier la taille des paquets. Mais ça ne change rien au fait que seule la distribution des paquets dans le tableau peut être aléatoire dans ce schéma.

VBA est un langage de programmation. On peut programmer ce qu'on veut sur la base d'une spécification claire des besoins. Si le besoin est de distribuer aléatoirement ces paquets dans le tableau, ça peut se programmer en VBA en effet.
 

Gwenole_50

XLDnaute Nouveau
Bonjour,
Si tu veux contrôler le nombre d'apparitions des chiffres, il n'y a plus rien d'aléatoire.
La seule chose qui peut être aléatoire, si on considère ton tableau, c'est la distribution de 5 paquets (20 fois <1>, 20 fois <2>, 20 fois <3>, 20 fois <4>, 20 fois <5>) dans les cases de ton tableau.
De même si tu veux augmenter le nombre d'apparitions d'un chiffre par rapport à un autre, il suffit de faire varier la taille des paquets. Mais ça ne change rien au fait que seule la distribution des paquets dans le tableau peut être aléatoire dans ce schéma.

VBA est un langage de programmation. On peut programmer ce qu'on veut sur la base d'une spécification claire des besoins. Si le besoin est de distribuer aléatoirement ces paquets dans le tableau, ça peut se programmer en VBA en effet.
C'est sa que je voudrais faire, placer les nombres aléatoirement dans le tableau. Et apres avec ta technique de paquet, comment les placer dans le tableau avec le nombre de paquet a mettre ?


Merci
 

Dudu2

XLDnaute Barbatruc
Ton tableau contient 17 * 21 = 357 cellules. C'est le maximum de nombre à placer.
Il faut définir les "paquets" de nombre dans la feuille du tableau (ou une autre).
Pour l'exercice:
Y a-t-il un minimum et maximum de paquets ? Ou un nombre de paquets imposé (5) ?
Y a-t-il une liste de nombres prédéfinie (1 à 5) ? Ou est-ce libre ?
 

Gwenole_50

XLDnaute Nouveau
Ton tableau contient 17 * 21 = 357 cellules. C'est le maximum de nombre à placer.
Il faut définir les "paquets" de nombre dans la feuille du tableau (ou une autre).
Pour l'exercice:
Y a-t-il un minimum et maximum de paquets ? Ou un nombre de paquets imposé (5) ?
Y a-t-il une liste de nombres prédéfinie (1 à 5) ? Ou est-ce libre ?
Alors j'aimerai répartir ainsi ,
il y a un nombre de paquets imposé qui sont:

85 x le nombre 1
85 x le nombre 2
85 x le nombre 3
51 x le nombre 4
51 x le nombre 5
 

Dudu2

XLDnaute Barbatruc
En général on réserve les cellules fusionnées pour éventuellement les titres en haut de page ou ailleurs mais pas pour les cellules qui contiennent les valeurs.
Les cellules fusionnées peuvent bloquer les suppressions / insertions de lignes etc...
Et en VBA cela impose une référence particulière (Area).
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,

Une autre macro rien qu'avec des arrays.
VB:
Sub ventiler()
Dim combien, i&, j&, n&, aux, p&, res
   Randomize: combien = Range("af7:ag11")
   ReDim r(1 To Application.Sum(Range("ag7:ag11"))): ReDim res(1 To 34, 1 To 21)
   For i = 1 To UBound(combien): For j = 1 To combien(i, 2): n = n + 1: r(n) = combien(i, 1): Next j, i
   For j = 1 To 2: For i = 1 To UBound(r): n = 1 + Int(Rnd * UBound(r)): aux = r(n): r(n) = r(i): r(i) = aux: Next i, j
   For i = 1 To 34 Step 2: For j = 1 To 21: p = p + 1: res(i, j) = r(p): Next j, i
   Range("j7").Resize(UBound(res), UBound(res, 2)) = res
End Sub
 

Pièces jointes

  • Gwenole_50- alea et proportion- v1.xlsm
    24.4 KB · Affichages: 19

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 838
dernier inscrit
Christelle.B86