Bonjour à tous,

Une fois n'est pas coutume, malgré mes recherches, je n'arrive pas à adapter ce que j'ai pu trouver à mon problème...
Je fais alors appel aux experts afin de vous soumettre mon problème.

Je souhaite effectuer une répartition équitable selon 2 critères.

L'idée de base : une liste de clients rattachés à des commerciaux et chaque client appartenant à un groupe défini (ex : groupe 1, groupe 2, groupe 3, etc.)
Lors d'un départ d'un commercial ou changement de groupe d'un client l'idée est de transferer équitablement les clients entre les commerciaux restants tout en gardant l'équité sur le groupe mais également en essayant au maximum de garder le commercial au client initial...

Exemple Avant refonte :
Client 1 - Groupe 1 - Commercial 1
Client 2 - Groupe 1 - Commercial 2
Client 3 - Groupe 2 - Commercial 3
Client 4 - Groupe 2 - Commercial 2
Client 5 - Groupe 2 - Commercial 1

Problème : le commercial 3 disparait et certains clients changent de groupe...
Client 1 - Groupe 2 - Commercial 1
Client 2 - Groupe 1 - Commercial 2
Client 3 - Groupe 2 - Commercial 3
Client 4 - Groupe 1 - Commercial 2
Client 5 - Groupe 1 - Commercial 1

Si je suis capable de faire une résolution simple avec la fonction choisir(mod(ligne();2)+1;"Commercial 1";"Commercial 2") --> celle-ci ne va me faire une répartition aléatoire en supprimant le commercial 3 et avec une équité en fonction du groupe de clients mais comme c'est aléatoire, ne tiendra pas compte de l'appartenance initial du client...

Ma question, comment rajouter cette condition en demandant qu'au maximum après la répartition équitable, je souhaite conserver le lien client/commercial.

Le résultat devrait donner :
Client 2 - Groupe 1 -Commercial 2
Client 4 - Groupe 1 - Commercial 2
Client 5 - Groupe 1 - Commercial 1
Client 1 - Groupe 2 - Commercial 1
Client 3 - Groupe 2 - Commercial 2
Ici, c'est simple, le lien est conservé à 100% mais dans la réalité sur plus de 10.000 lignes, l'idée serait plus de faire une boucle pour le lien se rapproche de 100%

J'espère avoir été le plus clair possible pour vous permettre de m'aider.

Merci par avance à tous,