XL 2019 Répartition de nombres selon critère(s)

minnicoffee

XLDnaute Nouveau
Bonjour,

Petit cas d'école dont le solution m'échappe totalement, si quelqu'un peut m'aider ce serait génial !

Je dispose de 3 onglets :

- BDD : Contient le nombre de clients pour chaque "Segment" (il y en a 11) par agence

- Répartition : Liste toutes les agences avec tous les profils de métiers, le nom du vendeur, le nb de clients maximum (cumulé) que chaque vendeur peut avoir et les colonnes de segment qui, cumulés, ne peuvent dépasser "le nb de clients maximum".

- Qui pour quoi : Liste ce que chaque profil de métiers gère.

Ma question : Est-il possible, en VBA (je pense?), de récupérer les valeurs de l'onglet "BDD" et reverser le nombre selon chaque profil. Sachant que si jamais cela dépasse le nombre de clients maximum par agence (et selon les capacités des profils), alors il faudra laisser la différence (ou faire un nouvel onglet qui dise le nombre restant par segment n'ayant pu être affecté).

Je vous remercie infiniment par avance pour votre aide et vous souhaite une belle soirée/journée,

classeur2.xlsx
 

Pièces jointes

  • Classeur2.xlsx
    16.7 KB · Affichages: 13
Solution
Voilà le fichier remis en ordre.
Reste quand même un titre ADJOINT qui n'est pas traité car inconnu au bataillon.

Edit: De toutes façons, cette priorité qui s'applique pour la limite verticale n'est pas très efficace car il y a souvent des situations où pour un même Titre (Ex. CONSEILLER PART) ce sont les premiers cités qui se prennent les valeurs et saturent le quota de l'agence. Les derniers n'ont plus aucun client affecté. Je veux bien aller à Nouméa travailler à l'agence Victoire en dernière position de CONSEILLER PART :cool:. Et ça tombe bien car je cherche un endroit pour perfectionner mon Kitesurf
1629537370254.png
.

Dudu2

XLDnaute Barbatruc
Bonjour,

En premières instance j'ai dû procéder à quelques travaux homogénéisation sur les noms de colonnes et le contenu des titres du dernier tableau aussi défini en tableau structuré.

Un bouton permet de faire la répartition.

Comme je n'ai pas compris cette histoire de différence, je te laisse la gérer. Ce doit être possible avec des formules.
 

Pièces jointes

  • Répartition.xlsm
    32.3 KB · Affichages: 6

minnicoffee

XLDnaute Nouveau
Bonjour Dudu2,

Géniaaaal, merci beaucoup ^.^ !!

J'ai un petit peu refait le tableau initial pour qu'il soit plus clair.

En gros, il y a une colonne nommée "Nb clients maxi" qui précise le nombre cumulés que chaque vendeur ne peut dépasser, en cumulé. En gros, on lui verse les clients adaptés à son SEG jusqu'au max du max et le reste passe au suivant puis au suivant et tout ce qui ne passe plus va au profil "REJET".

J'ai donc rajouté un profil "REJET" qui n'a aucune limite de client. cela permet de lui attribuer tout le reste des clients qui n'ont pas pu être distribués dans les profils précédents (car quota cumulé de clients atteint).

- J'ai rajouté une notion de "Priorité" (on verse en partant du responsable jusqu'au rejet).
- J'ai mis un exemple dans l'onglet répartition.

Est-ce possible tu penses ?

Passe une bonne soirée :)
 

Pièces jointes

  • epartition001.xlsm
    22.3 KB · Affichages: 11

Curulis

XLDnaute Nouveau
Salut MinniCoffee,
Salut Dudu,

bien vu le nouveau tableau !
Tu pourrais t'en servir pour y inscrire directement dans la ligne REJET les valeurs du [Tableau1] 'BDD' : c'est de toute façon ce que ma macro fait en début de travail !
J'ai"arrangé" à ma sauce le tableau "Qui pour Quoi" : plus facile pour une boucle FOR...NEXT !
Pour les priorités, pourquoi diable n'inscris-tu pas les noms des vendeurs dans cet ordre directement dans le [Tableau2] '4040' ?

Voilà 2 feuilles que tu pourrais supprimer !

😎
A+
 

Pièces jointes

  • MinniCoffee.xlsm
    26.5 KB · Affichages: 9

Dudu2

XLDnaute Barbatruc
Bonjour @Curulis, @minnicoffee,

Tu as ajouté un exemple et ce n'est pas trop tôt !
Comment deviner ta pensée sur les conditions de limitation des chiffres de répartition !
Il faut donc complètement revoir le code pour s'y conformer.

Tu as ajouté la notion de Priorité.
Je ne vois absolument pas à quoi ça peut servir.
Les lignes du tableau Répartition sont examinées une à une en séquence.
Quand bien même seraient-elles examinées selon la priorité (ce qui complique énormément les choses sauf à trier en amont le tableau répartition sur la priorité qu'il faudrait y placer en colonne) ça ne change strictement rien au résultat puisque les limitations sont propres à chaque ligne du tableau Répartition. Ou alors explique clairement en quoi la priorité impacte les chiffres.

Quant à la répartition de @Curulis dont le zip-code m'échappe complètement, elle n'a rien à voir avec l'exemple fourni. Comme quoi une demande imprécise donne des résultats complètement disparates. Et du boulot pour rien.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Ton truc est super complexe.
je crois avoir deviné à quoi sert la priorité !
S'il y a une limitation horizontale avec le NB CLIENTS MAXI, il y a aussi une limitation verticale avec le nombre pour l'Agence / Segment. Limitation verticale qui s'applique évidement avec l'ordre de traitement des lignes de Répartition.

Bon ben ça tu te débrouilles pour mettre les lignes de la Répartition dans l'ordre de priorité car il n'est pas question d'aller chercher les lignes d'une agence par priorité dans la Répartition et complexifier le code de manière déraisonnable.
Pour ça, soit tu places la priorité dans la Répartition et tu fais le tri préalablement au traitement, soit tu places d'entrée les lignes dans l'ordre prioritaire dans la Répartition. Ça doit probablement se faire une seule fois manuellement. On ne va pas faire des contorsions extravagantes dans le code pour éviter cette petite manip initiale.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Voilà le fichier remis en ordre.
Reste quand même un titre ADJOINT qui n'est pas traité car inconnu au bataillon.

Edit: De toutes façons, cette priorité qui s'applique pour la limite verticale n'est pas très efficace car il y a souvent des situations où pour un même Titre (Ex. CONSEILLER PART) ce sont les premiers cités qui se prennent les valeurs et saturent le quota de l'agence. Les derniers n'ont plus aucun client affecté. Je veux bien aller à Nouméa travailler à l'agence Victoire en dernière position de CONSEILLER PART :cool:. Et ça tombe bien car je cherche un endroit pour perfectionner mon Kitesurf
1629537370254.png
.
 

Pièces jointes

  • Répartition.xlsm
    38.9 KB · Affichages: 6
Dernière édition:

minnicoffee

XLDnaute Nouveau
Hello @Curulis Hello @Dudu2,

J'ai qu'un mot à dire : IN-CRO-YABLE !
Clairement, vous êtes des légendes d'Excel, à croire que vous avez contribué à la création de l'application haha !
En tout cas, il y aura très certainement des posts pour vous en Nouvelle-Calédonie avec des profils comme le vôtre ça c'est sûr :p !
& promis, on fera en sorte que vous soyez le dernier conseiller de Victoire pour aller faire du Kite ;) !

Blague à part, vous m'avez rendu un service inimaginable et vos deux tableaux sont tous les deux de très haute qualité avec une approche très différente sur le résultat : et c'est carrément ça que je recherchais (voir + :D)

Je vais intégrer les données de toutes les agences ainsi que tous les chiffres pour voir celui qui reflète le plus l'information que je souhaite faire ressortir (et je garde les deux très précieusement 😇).

Je vous remercie infiniment, vraiment !

Bravo et à bientôt 🏖️ !
 

Dudu2

XLDnaute Barbatruc
Maintenant, s'il faut répartir le nombre de clients du segment verticalement de manière égalitaire parmi tous les titres des toutes priorités candidats au segment dans une agence donnée (cas caractéristique des CONSEILLER PART dans l'agence Victoire) c'est possible mais plus compliqué évidemment. Cela aurait aussi bien sûr une influence sur la répartition horizontale qui elle aussi est soumise à biais de répartition créé par l'ordre de citation des segments dans le tableau des Qui Pour Quoi.
Quant à excel-pratique je n'y vais pas
1629558167015.gif
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Dans cette version, les noms des segments ne sont plus prédéfinis par une constante dans le code mais extraits directement du tableau des Qui Pour Quoi et ce sont eux qui servent de base aux contrôles de cohérence des titres des tableaux de la BDD et de la Répartition.

Ça permet éventuellement d'en changer les noms et/ou d'en ajouter ou supprimer à loisir sans modification du code.
 

Pièces jointes

  • Répartition V2.xlsm
    37.4 KB · Affichages: 4
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof