Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Staple1600

XLDnaute Barbatruc
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) ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
[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é.
 

Dudu2

XLDnaute Barbatruc
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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…