Répartition aléatoire

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.
 

Robert

XLDnaute Barbatruc
Repose en paix
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)
 

vador

XLDnaute Nouveau
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 édition:

bodegue

XLDnaute Nouveau
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

  • Répartion.xls
    16.5 KB · Affichages: 150
  • Répartion.xls
    16.5 KB · Affichages: 157
  • Répartion.xls
    16.5 KB · Affichages: 159

JHA

XLDnaute Barbatruc
Re : Répartition aléatoire

Bonjour Bodegue; le forum,

Une solution non pas aléatoire mais qui répartie les colis.

JHA
 

Pièces jointes

  • Bodegue.xls
    25 KB · Affichages: 132
  • Bodegue.xls
    25 KB · Affichages: 141
  • Bodegue.xls
    25 KB · Affichages: 142

Statistiques des forums

Discussions
312 392
Messages
2 087 988
Membres
103 690
dernier inscrit
LeDuc