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

Si maintenant je veux pouvoir choisir dans quelle case mettre les nombres et pas dans toute les case.
Est ce qu'il y a quelque chose de simple à modifier ?
Il faut définir les cellules "interdites".
Si ce sont des cellules éparpillées dans le tableau, il faut les définir une à une. Il y en a beaucoup ?
Si ce sont des cellules groupées dans le tableau, il faut définir les plages correspondantes.
Une façon de les définir consiste à les lister.
Un autre façon consiste à les caractériser par une couleur de fond spécifique par exemple,
ou de les pré-remplir avec une valeur 'X' par exemple (meilleure solution).
 
Bonjour @Staple1600 🙂,
[aparté pink lady]
La dernière ligne de votre code contredit d'un chouia cette affirmation, monsieur mapomme
Mais c'est cette "fake news" qui me permet de passer dans le fil pour vous saluer 😉
[/aparté pink lady]
Effectivement, la dernière instruction de mon code est End Sub qui ne fait intervenir en rien la notion d'Array 😉. Désolé 😳.
 
Si maintenant je veux pouvoir choisir dans quelle case mettre les nombres et pas dans toute les case.
Est ce qu'il y a quelque chose de simple à modifier ?
Dans ce cas , il faut aussi tenir compte dans le tableau des quantités du nombre de "X" pour respecter le cohérence. Donc la réponse à votre question est "ce n'est pas aussi simple qu'on le croit".
 
Re

[aparté de l'aparté]
Je voulais parler de la restitution de l'Array dans la grange.
Pardon la Range
Ceci dit je trouve votre code trés joli.
Je voulais juste faire la blague.
J'ai échoué.
Je suis désolé.
[/aparté de l'aparté]

Sinon, pour la question, j'essaie (mais sans trouver) quel est le contexte réel de la question (ou plutôt du projet de Gwenole) ?
 
[aparté de l'aparté]
Je voulais parler de la restitution de l'Array dans la grange.
Pardon la Range
Ceci dit je trouve votre code trés joli.
Je voulais juste faire la blague.
Je suis désolé.
[/aparté de l'aparté]
Moi aussi, je blaguais 😛

Sinon, pour la question, j'essaie (mais sans trouver) quel est le contexte réel de la question (ou plutôt du projet de Gwenole) ?
Oui parce que le nouvelle demande me laisse un peu perplexe quant au but recherché.
 
C'est parfait comme cela !
Cool.
Sur le tableau original de @Gwenole_50, je me suis aussi essayé à ce que j'appelle le "zip programing", c'est à dire faire un code le plus concentré possible.
- Noms de variables les plus limités possible (ne pas les déclarer c'est encore mieux)
- Un max d'instructions sur une même ligne
- Zéro commentaire
Le truc totalement incompréhensible et immaintenable. Voilà ce que ça donne... Et ça marche ! 😎
VB:
Sub ZipProgram()
    'Dim c As Range, i&, j&, k&, n&, p&, t
    Randomize: p = 357: ReDim t(1 To p): Application.ScreenUpdating = False
    For Each c In [AG7:AG11]: For i = 1 To c.Value
            n = Int(p * Rnd + 1): p = p - 1: j = 0
            For k = 1 To UBound(t): If t(k) = vbEmpty Then j = j + 1: If j = n Then Exit For
            Next k: t(k) = c.Row - [AG7].Row + 1
    Next i, c
    For k = 1 To UBound(t): [J6].Offset(-1 + Int((k + 20) / 21) * 2, (k - 1) Mod 21).Value = t(k): Next k
End Sub
 
Bonjour @Staple1600,
Tu as raison, False c'est beaucoup trop long !
Vive la Zip Attitude
1610770379049.gif

En plus ça existe vraiment !

Edit: de là à faire du code en trop y a quand même une marge. J'ai regroupé 2 fonctions en 1 dans le fichier du post #17 que @Gwenole_50 devrait récupérer à nouveau.
 
Dernière édition:
- 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