Répartition aléatoire

  • Initiateur de la discussion Initiateur de la discussion bodegue
  • Date de début Date de début

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 !

bodegue

XLDnaute Nouveau
Bonjour,

Voici mon problème. J'ai les produits suivants à répartir dans 6 colis de 10 pièces chacun de façon aléatoire.

1 sacs rouge
4 sacs noir
3 sacs bleu
2 sacs vert
2 sacs jaune
10 sacs mauve
3 sacs orange
2 sacs blanc
12 sacs marron
6 sacs ciel
9 sacs marine
6 sacs gris

Merci pour vos suggestions.
 
Re : Répartition aléatoire

Bonjour Bodegue, bonjour le forum,

en utilisant Équit' Table (que tu peux télécharger sur ce site), j'obtiens :

si tu peux scinder le paquet de 12 sacs marrons en 10 + 1 + 1 :
Colis 1 : 10 sacs mauve
Colis 2 : 10 sacs marron
Colis 3 : 9 sacs marine + 1 sac rouge
Colis 4 : 6 sacs ciel + 3 sacs orange + 1 sac marron
Colis 5 : 6 sacs gris + 2 sacs vert + 2 sacs blanc
colis 6 : 4 sac noir + 3 sacs bleu + 2 sacs jaune + 1 sac marron

Sinon :
Colis 1 : 10 sacs mauve (10)
Colis 2 : 12 sacs marron (12)
Colis 3 : 9 sacs marine + 1 sac rouge (10)
Colis 4 : 6 sacs ciel + 3 sacs orange (9)
Colis 5 : 6 sacs gris + 2 sacs vert + 2 sacs blanc (10)
colis 6 : 4 sac noir + 3 sacs bleu + 2 sacs jaune (9)
 
Re : Répartition aléatoire

Pour faire cela, je mélangerais les sacs, pour avoir un ordonnancement aléatoire, avec un tableau qui contient tes couleurs : "rouge", "noir", "noir", ...

Tu définis un tableau ou tu va recréer ta table dans un ordre aléatoire, et pour chacun de tes sac, tu inseres la valeur à une numéro de ligne tiré entre 1 et le nombre de sacs déjà copiés.
A la fin, tu prends tes éléments 10 par 10 dans l'ordre (puis qu'ils sont dans le désordre, ha ha ha)pour faire tes colis

Comme j'ai la flemme de chercher un objet ou on peut faire des insert, j'utilise un tableau excel 🙂

Je crée un named range "arr_bags" avec une couleur par ligne, et une zone "arr_colis" qui va recevoir les valeurs.

Code:
Option Explicit

Sub test()
    alea "arr_bags", "arr_colis"
End Sub

Sub alea(source, dest)
    Dim myBag As Range
    Dim randomized As Integer
    Dim random As Integer
    Randomize
    
    randomized = 0
    
    For Each myBag In Application.Range(source)
        random = Int((randomized+1) * Rnd)
        myBag.Copy
        Application.Range(dest).Offset(random + 1, 0).Resize(1, 1).Insert shift:=xlDown
        randomized = randomized + 1
    Next
End Sub

(correction pour l'orthographe)
 
Dernière modification par un modérateur:
Re : Répartition aléatoire

Merci pour votre réactivité. Voici un aperçu de ce que je voudrais obtenir. La répartition devrait se faire de façon automatique et homogène. C'est à dire que dans un colis la quantité entre les différents sacs doit être le plus homogène possible.
 

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
6
Affichages
346
Réponses
11
Affichages
732
J
  • Question Question
Microsoft 365 VBA
Réponses
18
Affichages
2 K
J
S
Réponses
5
Affichages
1 K
  • Question Question
Réponses
6
Affichages
2 K
T
Réponses
0
Affichages
1 K
titoun007
T
Y
  • Question Question
Réponses
10
Affichages
7 K
YasinGS
Y
Retour