Répartition de charge

Bonjour à tous

j'ai besoin de l'aide d'experts; voilà mon problème :

  • j'ai 10 groupes nommés : A,B,C,....I et J ====> colonne D
  • Chaque groupe a un poids précis par rapport au poids total ====> colonne E
  • j'ai une charge= variable (dans mon exemple = 10) ====> cellule E4
  • chaque groupe doit prendre en charge une partie de la charge en fonction de son poids
je calcule donc une charge théorique pour chaque groupe en fonction de son poids ====> colonne F

mais ma problématique est que cette charge par groupe ne peut être qu'un entier avec la règle que j'arrondis au supérieur dés que j'atteints les 0,5 et que la charge totale (10) doit être distribuée :

  • dans un premier temps je détermine la part entière de chacune des charges (au total : 6) ====> colonne H
  • il reste alors les décimales (au total : 4) ====> colonne I
or le total de la colonne I représente une charge=4 que je dois répartir sur les groupes ayant la charge la plus lourde en colonne I :

* 1er ==> groupe D : j'attribue 1 charge

* 2eme ==> groupe C : j'attribue 1 charge

* 3eme ==> groupe H : j'attribue 1 charge

* 4eme ==> groupe F ou groupe A : j'attribue 1 charge

Le résultat que je souhaiterai obtenir en automatique correspond à la colonne L ou M.

J'espère avoir été le plus clair possible. Merci de votre appui.

Bonjour Blob et le forum,

Après quelques suées, voilà une réponse sans macro. Pas forcément des plus élégant mais ça semble marcher dans tous les cas. Je l'ai testé en rendant aléatoire la charge et les poids.

Dans les cas extrêmes il peut y avoir une erreur d'1 reste non distribué, mais en ce cas je crois que ce ce sont les limites d'Excel lorsqu'il s'agit de décider qui est le plus grand de deux nombres et que cela se joue à des quantités dépassant la précision virgule flottante.

Par exemple :

Les poids aléatoires entre 1 et 100 et la charge entre 1 et 10000000 il y a un écart d'1 environ tous les 40-80 essais

Les poids aléatoires entre 1 et 100 et la charge entre 1 et 1000000 j'ai rencontré un échec à 750 puis plus rien pour les 5000 suivants.

Les poids aléatoires entre 1 et 100 et la charge entre 1 et 100000 j'ai arrêté les essais à 5000.

Les poids aléatoires entre 1 et 100 et la charge entre 1 et 10 j'ai arrêté les essais à 7000.

Je n'ai pas constaté d'échecs non plus sur 20000 essais sur des échantillons plus raisonnables.

J'ai laissé cette macro dans le classeur, qui ne sert qu'à simuler l'appui sur F9 (et à économiser mon majeur et mon endurance...), on peut bien sur la désactiver à l'ouverture sans incidences:

Sub Macro1()
    Randomize
    Calculate
    cpt = 0
    Do While Cells(17, 8) = 0
        Randomize
        Calculate
        cpt = cpt + 1
    Loop
    MsgBox cpt
End Sub

Cordialement.

Jules

edits synthèse: corrections et optimisation diverses

465repartition-v2.zip (20.17 Ko)

Merci infiniment pour votre aide. Bravo !

Rechercher des sujets similaires à "repartition charge"