XL 2019 Nombre aléatoire + Probabilité

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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
 
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 ?
 
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
 
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).
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
2 K
Réponses
11
Affichages
457
Réponses
12
Affichages
966
Retour